@wkololo_4ever
@Inv3go
Есть нюанс: объективно программирование - скучная, сложная, монотонная, ответственная, созидательная работа. Что бы не потерять "запал" - нужно сначала поставить цель, которая будет вдохновлять.
Даже в случае, если первым ЯП будет JS - это вовсе не значит, что все будет легко, и в шоколаде. Если попытаться сделать авторизацию (ввод логина и пароля с их проверкой) - вдруг окажется, что браузер этого не умеет. И что бы это сделать нужно знать HTTP, что такое web сервер, что такое база данных и NodeJS, а там далеко не все так просто. Многие фронтендщики, считающие, что хорошо знают JS в том же NodeJS теряются и понимают, что таки не знают.
Я рекомендовал С потому, что он даст понимание, как в принципе работает компьютер, что такое память, что такое процессорное время + он НЕ требует знать сразу стек технологий, в отличии от того же JS. Браузерный JS без HTML/CSS, знания DOM, понимания событийной модели работы - это абсолютно бесполезная хрень, годящаяся разве что для Hello World. У NodeJS (серверный JS) - уровень вхождения на порядок выше, утечки памяти в принципе ищутся как подземные воды у лозоходцев.
Вы хотите обучить системного программиста, или web-программиста?))
Если web - то, первое, с чего надо начинать - это HTML + CSS, потом PHP + MySQL, и уже потом JS + NodeJS.
То, что в школах и универах учат сортировкам и как бы все - это только подтверждает, что утверждение "с-ма образования пост-СНГ - превратилась в говнище". Но это вовсе не значит, что на C только сортировки пишут.
Из задач можете рассмотреть например:
* сделать обертку для вызова gocr, и распознавать чеки (если именно через консоль делать - там ничего сложного)
* сделать микро сайт www.fastcgi.com/devkit/doc/fastcgi-prog-guide/ch2c.htm
olexandr7
Друг как то историю рассказывал: на собесе про кучу всего поговорили, а потом пошли вопросы по сигнатурам методов, например модификаторы у функции sprintf...
У меня тоже ситуация была: про подавление нагрузки поговорили, индексы на аминокислоты разложили, сервера кэшей/очередей тоже проговорили. Интервьюер: ок, а теперь к практике, что произойдет:
$a = 5 + '5abc' + 'abc5';
Я: посмотрю блейм скрипта с целью узнать кто автор, дальше с ним поговорю с целью понять, что такого может в жизни произойти, что бы он позволил себе такое написать.
И: ну, тут задача на приведение типов
Я: да я понимаю, что 10, вы в реальном коде хотя бы раз подобное видели?
И: нет..
Я: я тоже..
Не все зависит от рекрутера)) Тех. специалист может быть хреновым интервьюером.
composer локально без sudo... Это phar архив, sudo может понадобится только когда хотите его глобальным по системе сделать, например скопировав в /usr/local/bin
> есть ли способ установить так же npm?
Я запутался, вы что хотите сделать? Локально установить npm и composer? Если да - то читайте оф. гайды по установке, права суперпользователя таки потребуются.
Ну как сказать, то что пишут в вакансиях, не всегда соответствует действительности. Обращайте внимание на уровень, который указывается в вакансии. Senior web-мастер вы вряд ли найдете. Для бекендщика часто пишут что-то в стиле "Strong knowledge: HTML5, CSS, JavaScript", в частности на текущую должность тоже в вакансии что-то подобное было, но за пол года я написал штука 30 HTML тегов...
На счет убегать от web - зря вы так, все движется в web))
beduin01
Если ты хочешь делать сайты - даже не думай, что одним языком отделаешься))
IncorrecTSW
> Но он прост как 3 копейки и на нем накидать прототип или мелкий сервис вообще без проблем.
Нода далеко не под весь веб - хоршая идея. Утчеки памяти можно определяется примерно так же как подземные воды у лозоходцев. Синхронные вещи на ней - тоже на самая лучшая идея. В случае HL обязательно придется увеличивать количество потоков для реализации асинхронщины, по умолчанию их 4. Под прототипы - php))
beduin01
> Dart конвертированный в JS работает быстрее, чем нативный код на JS
Знавал я доного порня, который утверждал, что программы на транслируемых языках быстрее, чем на языках в которые они транслируются, его потом в дурку забрали ясное дело
> ну учитывая, что кучу сайтов на Ruby и PHP пишут видимо математические вычисления в Вебе не так уж нужны...
Мат. операции используются постоянно, обычно не сложные, но все же + к тому как правило основное время - это ожидание данных от БД, или внешних сервисов. В случае с PHP - вообще пичаль, это state-less язык.
> а почему тогда NodeJS все так хвалят?
Хипстеры, что с них взять))
Есть планы записать несколько cool story + написать небольшой проект и по нему тоже несколько видео, правда web - будет как частный случай использования.
Go под web далеко не всегда имеет смысл использовать. Например те же бложики на go - с пушки по воробьям. Но под state системы с асинхронщиной и требования к производительности/памяти - вполне ок.
Если есть какие-то предложения по темам - напишите
Возможно я не совсем правильно выразился.
Задача "сделать биллинговую систему" - это абстракция высшего уровня, без привязки к конкретному проекту (или бизнес процессу) она может значить что угодно.
> У меня нету ТЗ , есть задача просто затратив меньше усилий автоматизировать больше процессов.
Дык описывайте, какие процессы вы хотите автоматизировать и что конкретно у вас не получается.
CyrusHarding
Вы сделали не правильные выводы по прошлым вопросам.
На них не отвечают потому, что:
1. Многабуков. Не пишите большие вопросы,
2. Вопрос-агрегатор. Не пишите в одном вопросе 1),2),...10)... один вопрос - один контекст.
3. Не спрашивайте "как сделать ...?", "или на каком движке сделать ...?". Штука, которую вы хотите сделать должна быть хорошо описана в ТЗ, и только на основании ТЗ стоит выбирать фреймворк. То, что вы можете получить тут как ответ - это "юзай А", "нет, юзай Б", "юзай В"... Но ничто не будет правильным ответом))
> Да, я считаю вашу критику не обоснованной.
Да мне в общем то все равно, вы же защищаете подобие фреймворка, разработчики которого даже в MVC не смогли))
Так как вы сказали что знакомы с Yii буду приводить сравнение с ним.
0. Autoloading www.codeigniter.com/user_guide/general/models.html
ci: $this->load->model('modelName') - НЕ ОК, но справка так рекомендует!
> If you find that you need a particular model globally throughout your application, you can tell CodeIgniter to auto-load it during system initialization.
ЛОЛШТО?? Автолодинг на нейспейсах еще в 5.3 появился. А то, что предлагается подгружать модели в конфиге при инициализации - за это надо... плохо в общем сделать.
У ci - значения параметров запроса жестко привязаны к их порядку объявления, у yii они привязаны к именам. Контроллер ничего не должен знать о роутинге, он решает другие задачи.
Наличие _remap - это вообще зло))
В задачи контроллера не входит полное управление представлением. Он обязан сформировать данные для вывода и передать их в шаблон, но не разбираться с тем какие зависимости есть у шаблона, динамические они, или статические, это полностью задача шаблона, справка ci предлагает делать по другому.
Модель не должна быть связана с пользовательским вводом, это задача контроллера, но справка ci учит обратному! Если вы поменяли ЧПУ - придется исправлять все зависимые контроллеры И все зависимые от них модели, это путь в никуда.
Что на счет валидации данных?
В ci это дело должно быть прописано обязательно руками отдельно. Но на секундочку, проверка данных перед запросом к БД - это одна из важнейших задач модели.
Я в курсе про form_validation, валидация форм - это проверка пользовательского ввода, валидация модели - это работа с БД, если в промежутке между form_validation и моделью данные изменяются - их обязательно необходимо проверять.
4. Контроль доступа, ci его просто нет из коробки, у yii - есть причем несколько имплементаций.
5. Кэширование, что на счет инвалидации кэша?
У yii есть зависимости, у ci - только ручное удаление. Кэша фрагментов тоже не вижу, хотя это ончеь удобно))
6. Виджетов тоже не наблюдаю..
И это только беглый просмотр доки))
> CI не быстрый? Быстрый.
Быстрый он не потому что качественный, а потому что убогий по функционалу. Качественный фреймворк - это тот, в котором составляющие части являются минимально зависимыми друг от друга, что бы в случае изменений - правки приходилось выполнять в минимуме компонент.
> ... но отстаивать свою правоту не обосновав ничем весомым своё решение. Так-что я думаю не стоит им уподобляться...
Вы считаете мою критику не обоснованной?))
> Да и вопрос ставился чутка иначе :)
На ваш вопрос ответили уже выше)
Месседж был в следующем:
если нужна скорость выполнения - это не CI
если нужна функциональность - это не CI
если проект большой - это не CI
если нужно что-то "на коленке" - вот это CI, но есть решения по лучше
> Не знаю, я лично memcached так не использовал, но модуль для ...
смысл в том, что бы отправлять данные на прямую из мемкэша, без использования ноды, php, python, или на чем там бэкенд написан.
> Возможности nginx. Разве нет? Можете сказать, что не работает?
Я ж вам привел пример с мемкэшем
> Сокеты и порты. А как связать, скажем, 80 порт с нужным сокетом нужного приложения ноды по домену?
Обычно проксируется через nginx на сокет файл + nginx отадет статику. Но это не является обязательным, можно напрямую поднять ноду на 80-м, в таком случае слушать сокет нет необходимости.
> Так passenger разве отнимает возможность взаимодействия с окружением, в котором запускается приложение?
Тебе это не нужно.
> Приложение работает точно так же, за исключением того, что нет необходимости переписывать код для работы в разных окружениях и конфигурация сервера приложения интегрирована в web-сервер.
Если код должен работать на РАЗНЫХ окружениях - он должен таки тестироваться на РАЗНЫХ окружениях)).
> Опять-таки, непонятно, как может конфликтовать сервер приложения с подобным софтом?
Например вы запускаете на старой версии ноды свою апликуху, но используете API последний версии - работать корректно не будет. Либо протвиоположный вариант: используете устаревшее API.
Еще раз, то, что предлагает ваша аплиукха - это сознательное завязывание собственных глаз для маленьких проектиков.
@Inv3go
Есть нюанс: объективно программирование - скучная, сложная, монотонная, ответственная, созидательная работа. Что бы не потерять "запал" - нужно сначала поставить цель, которая будет вдохновлять.
Даже в случае, если первым ЯП будет JS - это вовсе не значит, что все будет легко, и в шоколаде. Если попытаться сделать авторизацию (ввод логина и пароля с их проверкой) - вдруг окажется, что браузер этого не умеет. И что бы это сделать нужно знать HTTP, что такое web сервер, что такое база данных и NodeJS, а там далеко не все так просто. Многие фронтендщики, считающие, что хорошо знают JS в том же NodeJS теряются и понимают, что таки не знают.
Я рекомендовал С потому, что он даст понимание, как в принципе работает компьютер, что такое память, что такое процессорное время + он НЕ требует знать сразу стек технологий, в отличии от того же JS. Браузерный JS без HTML/CSS, знания DOM, понимания событийной модели работы - это абсолютно бесполезная хрень, годящаяся разве что для Hello World. У NodeJS (серверный JS) - уровень вхождения на порядок выше, утечки памяти в принципе ищутся как подземные воды у лозоходцев.