Если просто так не хотите терять время - dev окружение должно быть максимально похоже на прод. Посему \r - писать для поддержки dev как бы не кошерно. Может привести к артефактам.
OnYourLips вполне дело говорит. Если ваш проект будет 99% работать под виндой - пользуйте \r, в противном случае даже если нашли такую какую во входящих данных - фильтруйте.
php запускается web сервером на запрос, а после выполнения - умирает
nodejs - поднимает свой web сервер, подгружая все выполняемые скрипты в этот момент
golang - поднимает свой web сервер, но это компилируемый язык и все исходники уже скомпилены вовнутрях исполняемого файла
Тут принципиально разные подходы к выполнению, так что таки ложка, вилка и чашка))
>> Может что то посоветуете, хотелось бы выбрать язык, с такими характеристиками..
Эх, мечты, мечты)) Вы смотрите на язык, как на целую эко-систему, что не совсем верно.
>> Пришла такая идея, для того что бы не гонять базу, сделать свою, которая будет работать с файлом..
Вы можете конечно такое создать, но каков будет профит? Тут все очень зависит от конкретной бизнес логики. И не факт, что у вас получится лучше, чем уже существующие решения.
>> сервер что бы держал до 500 одновременных соединение...
Просто 500 соединений, эт как бы уже скучно)) habrahabr.ru/post/123154
Ну, тут все зависит от того, как вы блокировки сделаете))
Самое близкое к понятию горутина - это нить. Переключением между ними занимается сам golang и делает это очень быстро. Так что вообще говоря не должен.
На счет сложных потоков: тут многое зависит уже от системы ввода/вывода, если эти 10 потоков сожрут hdd - остальные 90 если даже на Pure С будут написаны, все равно тормозить будут.
Для чисто WEB: самая основа основ это HTTP и принцыпы работы сети, HTML, CSS. Без этих технологий будь вы хоть гуру Erlang - путь в web будет закрыт.
На счет литературы - я бы на вашем месте начал с С, что бы иметь представление о том, каково оно в реальности, потом уже книги по архитектуре и конструированию.
2. Оформляется как акт приема-сдачи работ разработчиком. Акт составляется на основе договора между разработчиком и ОАО "РогаДаКопыта". В акте указывается список проделанных работ.
3. ТЗ составляется перед началом разработки проекта в целом, либо отдельной итерации. Разработчик в принципе выполняет задачи, созданные на основании ТЗ. Как сформировать - можете прочитать Макконнелл "Совершенный код" часть 1.
Не сложнее, чем вы задали вопрос)) Удобнее всего было бы следующе: сформулируйте ваши вопросы в следующем виде:
1. Я, как заказчик, хочу отчет о времени разработки. Как сформировать документы?
2. Я, как директор ОАО "РогаДаКопыта", хочу отчет о времени разработки. Как сформировать документы?
3. Я, как исполнитель, хочу грамотное ТЗ. Как сформировать ТЗ?
ppa > 1) Это таки не ошибка архитектуры. Мне нужно это, чтобы никто не мог вызвать функцию, не возбудив хэндлер.
Дык приватные методы для этого есть.
> Код может быть обфусцирован, также есть различные callback функции.
В чем проблема то? Смысл в том, что бы заменить:
myfunction($param1, $param2)
на
pleaseRunMyHandlerForFunction('myfunction', [$param1, $param2]);myfunction($param1, $param2);
Вы пытаетесь решить архитекрурный пр**б костылями из обогащенного урана.))
Тут могу предложить 2 решения:
1. Переделать архитектуру, что бы таких глупостей не требовалось.
2. Использовать предварительную модификацию кода, через token_get_all с явной модификацией кода и сохранением его во временную директорию, из которой он будет работать.
Reflection API в помощь. Если я правильно понял, что вы хотите сделать - лучше всего создать классы обертки (можно в виде наследников), которые будут реализовывать конкретно ваш функционал. К приватным методам/свойствам сможете достучаться через Reflection API.
OnYourLips вполне дело говорит. Если ваш проект будет 99% работать под виндой - пользуйте \r, в противном случае даже если нашли такую какую во входящих данных - фильтруйте.