• Почему столько восторгов вокруг типизации? По-моему без нее намного проще, не?

    @EvgeniiR
    https://github.com/EvgeniiR
    Писать код и не знать с какими вы типами работаете не нормально.
    Это приводит к ошибкам, усложняет понимание кода, сильно усложняет статический анализ.
    Поэтому в php есть vimeo psalm, phpdoc'и с типами и type hints с 7 версии, а в js typescript(ещё всякие kotlin native кстати )
    Ответ написан
    Комментировать
  • Как закоммитить файл профилем гитхаба?

    @EvgeniiR
    https://github.com/EvgeniiR
    Скорее всего email с которым вы коммитите не совпадает с указанным на гитхабе.
    Можете попробовать посмотреть вывод git config user.email в директории со скачанным репозиторием.

    Ещё если в PyCharm`е залезть в git log должна быть возможность просматривать credentials связанные с каждым коммитом

    Меняется email просто командой git config user.email "some_email@example.com"
    Ответ написан
    1 комментарий
  • Конфликтует ли фабричный метод с OCP?

    @EvgeniiR
    https://github.com/EvgeniiR
    Фабричный метод возвращает объекты одного типа, это даже показано в приведенной вами статье.
    То есть, по хорошему, всё что должен знать клиентский код при вызове фабричного метода - объект с каким интерфейсом/экзмепляр какого абстрактного класса должен вернуться.

    Кстати, совет, новички этим частенько грешат - не пытайтесь впихнуть паттерны в код, просто за то что они есть, и не пытайтесь изучить их чтобы улучшить качество своего кода. Это скорее названия наиболее часто повторяющихся мест в разных программах.
    Если интересны паттерны, и вы хотите извлечь из этого пользу - старайтесь найти побольше примеров использования изучаемых на текущий момент, и разобраться почему были выбраны именно они. Вот там будет простор на подумать
    Ответ написан
    Комментировать
  • А существует ли аналог [старого] Хабра, но на англ. языке?

    @EvgeniiR
    https://github.com/EvgeniiR
    Есть всякие Medium`ы и т.п. но по сути то же самое и найти что-то годное непросто.
    Если есть какие-то люди которых вам интересно читать - смотрите куда они пишут. Интересные на мой взгляд авторы пишут лишь в личные блоги
    Ответ написан
    4 комментария
  • Как лучше выложить frontend и backend одного проекта на github?

    @EvgeniiR
    https://github.com/EvgeniiR
    Хватит уже пытаться во всём следовать каким-то стандартам )
    Интересоваться ими, если они есть, однозначно, стоит. Но слепо следовать каким-либо стандартам только за то что они существуют бессмысленно и часто вредно.
    Выкладывайте, вобщем, как удобнее, вы ведь не просто для галочки VCS(Git) используете?

    Если это два отдельных проекта общающихся по API, нет никаких проблем выносить их в два разных репозитория. Если работают одни разработчики и изменения идут одновременно и там и там, можно положить в один. Выбор за вами.
    Ответ написан
    Комментировать
  • Где правильнее хранить search-модели Yii2?

    @EvgeniiR
    https://github.com/EvgeniiR
    Храните связанные между собой вещи рядом.
    Модель поиска продуктов рядом с моделью Продукта, модель поиска категорий рядом с категорией.
    Нет смысла выделять папку для "всех" search-моделей
    см. Структура проекта, LIFT
    Ответ написан
    Комментировать
  • Какое API использует ВКонтакте? JSON-RPC?

    @EvgeniiR
    https://github.com/EvgeniiR
    Это просто json over http application programming interface(API), зачем вы ещё как-то пытаетесь его классифицировать, какой в этом смысл?

    Может быть это подвид REST API

    Вот вам автора термина REST в ленту - roy.gbiv.com/untangled/2008/rest-apis-must-be-hype... , REST API не нуждается в документировании, версионировании, и не заставляет думать клиента об урлах и структуре возвращаемых ответов, разве это похоже на api ВК?
    Ответ написан
    Комментировать
  • Как получить теоретические знания, чтобы иметь возможность описывать то, что я реализую на практике?

    @EvgeniiR
    https://github.com/EvgeniiR
    Итак,
    какие конкретно стоит почитать

    1. Макконнелл, "Совершенный код". Объемная но не особо сложная книжка, можно прочитать не особо то за большее время чем такую-же книжку из художественной лит-ры.
    2. Роберт Мартин, Идеальный программист. Есть ещё "Программист прагматик", вроде тоже о чем то подобном. Книжка небольшая, в принципе можно за пару тройку недель прочитать рассуждения Дяди Боба о работе программиста.
    3 Роберт Мартин, Чистый Код. Весьма хорошая книжка, очень широко затрагивает тему написания поддерживаемого кода. Важно - особенно в этой книге, но так же и в любой другой - не зацикливайтесь на догмах аля "3 строчки на функцию", не обожествляйте SOLID, а рассматривайте, какие проблемы решают предложенные решения. Советую в каждом случае рассуждать о том, как описываемые вещи влияют на качество кода и архитектуры программы.
    4. Роберт Мартин, Чистая Архитектура - относительно новая книжка о том, что всё новое это хорошо забытое старое. Возможно вещи описываются немножко поверхностно, впрочем, углубляться в любом случае нужно самому. Книжка годная, получше объясняет SOLID, затрагивает другие принципы, затрагивает парадигмы, принципы дизайна, архитектуру, объясняет почему то, что многие горе-разработчики нынче зовут ООП им не является. Думаю эту книжку можно даже перенести на первое место.
    Дальше уж по ситуации - паттерны GoF, PoEAA, Рефакторинг Фаулера, Кента Бека про тестирование etc.

    подсознательно я продолжаю выбирать именно "правильные" подходы,

    Боюсь, что вы просто используете те подходы что знаете, а не выбираете исходя из требований и ситуации.
    Хотя бы потому что "правильных" подходов не бывает, есть подходящие в данной ситуации, и плохо подходящие, компромиссные и откровенно вредные.

    наследование — это реализовывается само собой.

    Вот эта фраза явно даёт понять что у вас есть проблемы в дизайне. Наследование это весьма опасная штука, и делать его просто потому что показалось удобным, не задумываясь об LSP, контрактах и инвариантах.. Кхм.. Плохо.

    Упомяну один момент: статейки в интернете и даже(о боги) на всеми нами любимом хабре или тостере, как и любые другие источники информации, книги и доклады любимых нами авторов представляют исключительно субъективное мнение автора, и лишь его понимание описываемой темы, сформировавшееся в силу, обычно, неизвестных нам обстоятельств. Они могут нести за собой скрытую сложность, абсолютно не подходить в ситуациях отличных от ситуации автора, и никогда не стоит принимать из за единственно-верную истину. Скорее, за пищу для размышлений и альтернативные подходы к какому-либо делу.
    Ответ написан
    Комментировать
  • Структура данных на фронт-енде и бек-енде отличаются. Кто должен переделывать?

    @EvgeniiR
    https://github.com/EvgeniiR
    Выкиньте бэкендеров и воспользуйтесь каким-нибудь serverless решением если они просто прослойка перед базой и не умеют даже данные в формат отличный от таблички для write модели конвертить
    Удобство это по сути главное требование к API, а проблемы Бэкенда должны оставаться на бэкенде.

    P.s. а ещё лучше прикинуть costs/benefits вместо непродуктивных споров
    Ответ написан
    6 комментариев
  • Что такое принцип реактивного программирования в ВЕБ?

    @EvgeniiR
    https://github.com/EvgeniiR
    https://www.google.com/search?q=reactive+programmi... - не благодарите

    Чем отличается работа с потоками от async/await или генераторов? (пожалуйста дайте пару примерров)

    Неужели спросить одно и то же на тостере быстрее чем в гугле?

    И что такое акторы

    Если вы не цените чужое время, не стоит ждать хорошего отношения к вам и вашим вопросам..
    Теме уже практически пол века, неужели такая проблема найти информацию по ней?
    Ответ написан
    Комментировать
  • Сколько нужно уметь для трудоустройства?

    @EvgeniiR
    https://github.com/EvgeniiR
    Обычно головы на плечах хватает. Если есть то конкуренция для вас минимальна и проблем устроиться не будет.

    скажите пожалуйста, нужно ли будет в будущем учить php и mysql?

    В будущем будете исходить от требований и собственных желаний. Чтобы устроиться фронтенд-разработчиком(не верстальщиком) займитесь поплотнее js. Разберитесь с популярными инструментами(gulp, webpack), понятиями (что такое SPA, и как его реализовать? Ajax? Websocket?) и освойте какой-нибудь фремворк (react / vue / angular etc.)

    Ну и да, ориентируйтесь по вакансиям на джуна.

    p.s. ещё git и примеры кода на github.
    Ответ написан
    7 комментариев
  • В чём основной минус языка V?

    @EvgeniiR
    https://github.com/EvgeniiR
    Хотя до конца не ясно, может ли без маркетинга новый ЯП взлететь на одних лишь объективных преимуществах.

    Не может )
    Гляньте не историю развития ЯП и поймете что объективные преимущества не решают абсолютно(привет Java с её "недоООП" вытеснившим SmallTalk).
    Ответ написан
    Комментировать
  • Каковы _существенные_ (практически значимые) отличия Symfony от Laravel?

    @EvgeniiR
    https://github.com/EvgeniiR
    Eloquent = Doctrine?)
    Советую вам хоть немного разобраться что это такое, и какие паттерны реализованы в Доктрине, а какие в елоквенте.

    Мне в Laravel понравилась свобода - то есть при желании я могу запросто напихать в шаблоны PHP-код и в запросы к базе - RAW-SQL и запихнуть эти запросы хоть в роутер))))
    Пишите на чем угодно, все равно в помойку отправится, потому что подерживать такое никто не будет.
    Фреймворк для того что вы хотите делать не нужен вообще.

    А то мне сейчас нужно сайт-сообщество сделать, и я пока так и не нашел годный готовый опенсорсовый движок для этого на основе Laravel.

    Опять же - вам не нужен фреймворк. Фреймворк это каркас для приложения которое вы будете писать.

    Вы наслушались где-то про фреймворки, и теперь пытаетесь рассуждать о них даже не понимая что это такое и для чего они нужны.
    Вам нужен готовый конструктор / CMS
    Ответ написан
    Комментировать
  • Как получить таблицу "зеброй"?

    @EvgeniiR
    https://github.com/EvgeniiR
    А причем тут Symfony и Twig то?)
    Это делается одним CSS параметром :nth-child
    См. htmlbook.ru/css/nth-child
    <!DOCTYPE html>
    <html>
     <head>
      <meta charset="utf-8">
      <title>nth-child</title>
      <style>
       table { 
        width: 100%; /* Ширина таблицы */
        border-spacing: 0; /* Расстояние между ячейками */
       }
       tr:nth-child(2n) {
        background: #f0f0f0; /* Цвет фона */
       } 
       tr:nth-child(1) {
        background: #666; /* Цвет фона */
        color: #fff; /* Цвет текста */
       } 
      </style>
     </head>
     <body>
      <table border="1">
       <tr> 
        <td>&nbsp;</td><td>2134</td><td>2135</td>
        <td>2136</td><td>2137</td><td>2138</td>
       </tr>
       <tr> 
        <td>Нефть</td><td>16</td><td>34</td>
        <td>62</td><td>74</td><td>57</td>
       </tr>
       <tr>
        <td>Золото</td><td>4</td><td>69</td>
        <td>72</td><td>56</td><td>47</td>
       </tr>
       <tr>
        <td>Дерево</td><td>7</td><td>73</td>
        <td>79</td><td>34</td><td>86</td>
       </tr>
       <tr>
        <td>Камни</td><td>23</td><td>34</td>
        <td>88</td><td>53</td><td>103</td>
       </tr>
      </table> 
     </body>
    </html>
    Ответ написан
    3 комментария
  • Почему бы не сделать PHP полностью асинхронным?

    @EvgeniiR
    https://github.com/EvgeniiR
    1. PHP умирает на каждый запрос. Это его главное преимущество и особенность. Это допускает очень много вещей, т.е можно не париться закрытием файлов, завершением подключения к БД и т.п. Как только вы захотите писать асинхронно вам про всё это нужно будет помнить.

    2. Итак, плавно переходим к тому что помнить, вобщем то, нужно будет не только вам. 99% всех библиотек/фреймворков etc. для PHP не пригодны к работе асинхронно.

    3. "полностью асинхронным" = отсутствие блокировок? Первое на чем вы споткнетесь - банальные запросы к базе. С дефолтным драйвером они идут синхронно. Точно так же как синхронно работает куча других подключений, и всякие Swoole etc. вынуждены писать над всем этим свои обертки и свои драйвера к БД.

    Вобщем, асинк в PHP это огромное усложнение на пустом месте, и при наличии блокирующих операций не имеет никакого смысла. Сильно проще сменить язык программирования, если вам нужна асинхронщина.
    По описанию вашего вопроса - гляньте RoadRunner, интересная штука. Как раз чтобы сократить оверхед на инициализацию.
    Есть ещё всякие штуки аля https://github.com/php-service-bus/service-bus , но повторюсь, проще подходящий ЯП взять.
    Ответ написан
    6 комментариев
  • Что нужно знать, чтобы запустить свой блог?

    @EvgeniiR
    https://github.com/EvgeniiR
    не CMS и пр. - ведь это просто блог

    Вот как раз для блога, если цель - вести, извиняюсь, блог, как раз стоило бы взять готовую CMS - скорее всего Wordpress, и не париться. Всё что нужно от блога - стабильно работать, не мешать SEO и содержать полезный контент - у CMS с первым и вторым всё хорошо уже из коробки. 3 - зависит только от вас.

    Ну а для саморазвития - всё к чему душа лежит.

    В общем, расскажите мне основные принципы запуска сайта на хостинг, его защиту, необходимое ПО

    Ставите на VDS-ку веб-сервер, настраиваете его чтоб слушал запросы и вызывал ваш код. Всё.
    А нет, не всё - пароль дефолтный смените. Теперь всё.
    Ответ написан
    Комментировать
  • Нужно ли блокировать таблицу?

    @EvgeniiR
    https://github.com/EvgeniiR
    Парни, дайте совет.

    Совет - Юзай UUID. Идеальное решение для таких случаев
    Ответ написан
  • Что не так с phpdoc?

    @EvgeniiR
    https://github.com/EvgeniiR
    @ array и @ ojbect соотвественно высвечивается варгнинг. В чём дело ?

    В том что таких тегов у phpdoc не существует, например?
    Где вы тут @object или @array то нашли? docs.phpdoc.org/references/phpdoc/index.html
    Ответ написан
    Комментировать
  • Пихать много логики в модель - это Laravel way?

    @EvgeniiR
    https://github.com/EvgeniiR
    Фреймворк -это инструмент для решения ваших задач. Не вы должны подстраиваться под фреймворк, нужно подбирать инструмент подходящий для ваших целей.
    По хорошему вся ваша бизнес-логика вообще никак не должна зависеть от фреймворка, и в этом плане у Yii и Laravel всё не очень хорошо, но Ларавель хоть компонентный, и кастомизировать можно, если понимать что делаешь.
    Ответ написан
    2 комментария