• Что нынче должен знать php junior без опыта?

    @pqgg7nwkd4
    Перестаньте называть себя junior без опыта.
    Как показала моя 32х летняя жизнь, в первую очередь нужно быть хорошим человеком.
    С вашим списком умений, я уверен, вы сможете устроиться даже Java программистом и быстро разберетесь.
    Ответ написан
    Комментировать
  • Книги, помогающие научиться правильно именовать классы?

    @EvgeniiR
    https://github.com/EvgeniiR
    В чем моя проблема?)

    В том что ваш класс делает слишком много и знает слишком много.
    Ни про какие "3 уровня обработки" данных которые к нему приходят он знать не должен.
    Он принимает данные определенного формата и возвращает данные определенного формата. Что с ними происходило для и что будет происходить после его не волнует.

    Если невозможно выразить на уровне типов все требования к входящим данным, класс возвращает ошибку если данные пришли не в том виде, в котором он ожидал.

    какие книги ставят голову на место в этом плане?

    Почитать - Макконнелл, "Совершенный Код". Книжка толстая, но не сложная технически, любые нюансы именования там описаны.
    Ну и в дальнейшем исходить из вопросов "для чего я это делаю?" и "какие ещё есть варианты это делать?"
    Ответ написан
    2 комментария
  • Где взять подробный пошаговый туториал по решению реальной жизненной задачи с помощью Docker?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Реальный пример - днями попросили сделать изменения в проекте, стек не типичный для меня, нгинкс/постгрес/пых7.2. При том что делать его на домашней машине пришлось, вин10. Так то у меня настроен апач/мускуль/пых 7.1.

    Поставил контейнеры на нгинкс/постгрес/пых7.2., задавил локальный апач чтобы не мешал на 80 порту и все, могу работать с совершенно другим стеком, и все это "внутри" на линухе, со всеми возможными апт-гет инсталлами и тд. Закончил - выключил - забыл. Или перенастроил контейнеры. В системе ничего не поменялось вообще.
    Ответ написан
    2 комментария
  • Почему не получается кольцо из точек координат при расчете?

    @Alk90 Автор вопроса
    php, mysql, jquery, css, html, api
    Разобрался сам.
    Для тех, кто будет искать: функция point принимает значения координат вот так: point(`lng`, `lat`)
    А координаты выдаваемые гуглом на картах пишутся наоборот: lat, lng
    поменял местами числа 55.754958 и 37.622650 - все заработало нормально
    Ответ написан
    2 комментария
  • В каком порядке это учить?

    wapster92
    @wapster92 Куратор тега JavaScript
    Из всего перечисленного только ajax. Gulp и webpack достаточно понять принцип работы, babel вообще учить не нужно, yarn и npm почти одинаковые инструменты запомнить несколько команд и все. Ну а так ajax, json, npm(yarn), gulp (webpack). Хотя если не знаешь, что такое ajax и json стоит сначала выучить js
    Ответ написан
    2 комментария
  • В каком порядке это учить?

    coderisimo
    @coderisimo Куратор тега JavaScript
    Имхо, не надо искусственно что-то учить в отрыве от реальности. Определите изучаемый стек. Берите и пилите реальный проект. На самом деле нужно изучить гораздо больше всего (!!! демонический смех !!!). Но изучать надо не в вакууме. Тогда и интереснее будет и ближе к практической плоскости.
    Ответ написан
    2 комментария
  • Универсальный метод обновления данных в БД?

    @McBernar
    Кто вам мешает на лету собирать sql? Принимаете запрос в виде массива поле-значение и генерируете соответствующий запрос.
    Ответ написан
    6 комментариев
  • Почему не работает sort() Laravel?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    ->sortByDesc('lastMessage.created_at')
    ?
    Ответ написан
    Комментировать
  • Откуда вклад, если у пользователя ноль ответов?

    Раньше, если на твой вопрос подписалось 3 человека - это 1 вклад
    Ответ написан
    1 комментарий
  • Где взять озвучку произношения слов?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Нет такой базы слов.
    Слова и фразы генерируются на лету через какой-либо Speech Engine. На вход подаёшь текст, на выходе - звуковой файл или поток.
    Изменить произношение без модификации нельзя. Движок может только предоставить на выбор разные голоса
    Ответ написан
    3 комментария
  • Есть ли здесь бывшие олимпиадники? Как олимпиады помогли Вам?

    eternals
    @eternals
    ACM и кружок в институте дали следующее:
    1. Во-первых, заставил рассматривать разные данные на входе. Т.к. тесты на большинство особых данных были и задачи тупо не засчитывались. После этого стало уже не возможным, например, пропустить деление на ноль.
    2. Лично для меня вступление в этот кружок дало некоторое отрезвление, т.к. я стал вращаться среди людей, которые многое в ИТ умели лучше меня. До этого что в школе, что в лицее, что в самой группе в институте не имел возможности ни с кем конкурировать, т.к. был на много голов выше.
    3. Решение задач в фиксированные сроки. Оценка и расстановка приоритетов — какие задачи в каком порядке кому решать.
    4. Типовые задачи мы оттачивали на занятиях в кружке. Это тоже дало некоторую базу для дальнейшего движения.
    5. Оптимизационные алгоритмы — это особая ценность. Их было много, они были и весьма не простые. Нужно было ещё ориентироваться, когда что применять. Очень помогает сейчас.
    Ответ написан
    Комментировать
  • Есть ли здесь бывшие олимпиадники? Как олимпиады помогли Вам?

    @tangro
    Диплом призера государственной олимпиады дал мне бюджетное место в ВУЗе. Диплом победителя внутривузовской олимпиады — повышенную стипендию (200%).

    С психологической точки зрения олимпиады дали мне такие вещи как:
    1. Веру в том, что нерешаемых задач нет. Надо просто еще чуть-чуть подумать.
    2. Принцип «сначала делаем то, что знаем, потом — то, что не знаем». Очень помогает.
    3. Чувство того, что всегда есть кто-то впереди тебя и стремление его догнать и перегнать.

    С точки зрения полезности олимпиадных знаний — почти ничего. Нет, ну конечно, кое-какие познания в области дискретной математики, теории вероятности и т.д. остались, но в целом олимпиадное программирование и промышленное программирование не связаны никак. Это как фигурное катание и хоккей — и там и там вроде бы есть коньки и лёд, но вот методы их использования и конечные цели очень отличаются.
    Ответ написан
    8 комментариев
  • Как получить данные из консоли?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Что должно находиться в инфраструктурном слое в многослойном приложении?

    xEpozZ
    @xEpozZ
    Веб-разработчик
    Всё, что не важно для бизнес-логики, должно быть вне domain-слоя.
    Разве бизнесу важно, как будет выстроен хеш пароля? (Несомненно, зависит от бизнеса, но в 90% случаев нет).
    Спросите об этом доменного эксперта или хотя бы менеджера.
    Они могут даже не знать, что такое "хеш" в принципе.

    А интерфейс лежит в домене, потому что нужно как-то соединить это "неважно" с "нужно".

    Даже если бы была только одна реализация, ее в примере вынесли все равно.

    Можно ли положить в домене? Вы строите систему. Хотите, положите в доменный слой, хотите, вынесите в микросервис. Хотите, пишите на PHP, или на Go или на C++.
    Как решите Вы, так и делайте.

    Правильнее абстрагировать домен от всего лишнего. Всего, что не касается предметной области. Но вот только иногда (почти всегда) этого не удается сделать адекватно и следующий джун обязательно сделает что-то не так.
    Плюс к тому же, абстракциями можно задушиться, что потом не разберешься, что использовать.

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

    Можно ли себя называть миддлом, если твой код говно?

    Неа. Если только хреновым миддлом. Ну и смотря насколько говно - там тоже разные сорта. Может, ваш код очень даже по сравнению с.

    как писать поддерживаемый код?

    Практика. Я всегда очень гордился решениями, которые говнокодил, однако в процессе разработки выяснялось, что они не ахти (просто с кодом становилось очень неудобно работать, особенно когда проект твой собственный и ты к нему возвращался через полгода), и приходило понимание, почему. В следующем проекте я старался избегать предыдущих граблей и наступал на новые. В итоге сейчас если я и говнокодю, то уже осознанно, а это, как вы понимаете, уже совершенно иная ступень мастерства)
    Ответ написан
    1 комментарий
  • Как перестать говнокодить и принимать неверные архитектурные решения?

    alexeynobody
    @alexeynobody
    Как можно больше практиковаться, постараться найти грамотного ментора или работу, где будет более старший программист чем вы, который сможет подсказать и объяснить, что плохо, а что хорошо.
    Ответ написан
    Комментировать
  • Как не начать говн*кодить?

    usdglander
    @usdglander Куратор тега PHP
    Yipee-ki-yay
    Забавный вопрос:
    Сначала Вы всё равно будете говнокодить! Потом перестанете и станете перфекционистом! А потом всё равно СНОВА станете говнокодить, ну либо будете срывать сроки. :)))
    Ответ написан
    4 комментария
  • Как перестать говнокодить и принимать неверные архитектурные решения?

    miraage
    @miraage
    Старый прогер
    как писать поддерживаемый код?

    Если уж очень коротко, то соблюдать SOLID/GRASP. Мне понравился твит одного из авторов React Router:
    https://twitter.com/mjackson/status/1171524189850701825

    Most common mistake software developers make: putting stuff in the wrong place. Coupling responsibilities and concepts that should be kept separate.
    For me, this is 95% of software development. Just figuring out *where* things belong.


    Что гуглить, что учить?

    Фундаментальные знания, вроде вышеупомянутых SOLID/GRASP, паттерны (не только классические паттерны, но и вообще, общеизвестные решения определённых задач), базовые структуры данных. Фреймворки/библиотеки всегда будут приходить/уходить, что-то будет забываться. А фундаментальные знания всегда актуальны.

    Может литературу какую почитать посоветуете?

    Скажу за себя. Ни одной из этих известных книжек за свою жизнь не прочитал. Писал много говнокода дома, очень много. Удалял, переписывал. Смотрел код других людей, анализировал, пытался перенять то, что считал правильным.

    Можно ли себя называть миддлом, если твой код говно?

    Не пытайтесь себя оценить. В каждой компании свои понятия миддла. А если кто-то 35 лет на лиспе кодил, а потом прыгнет на Angular - кто он, джун или сеньор?
    И, да, все мы в какой-то степени пишем говнокод. Если кто-то Вам доказывает, что он пишет супер чистый код - не слушайте.

    И ответ на главный вопрос.
    Как перестать говнокодить и принимать неверные архитектурные решения?

    Это невозможно. Все проекты, которые чуток сложнее CRUD-ов, рано или поздно обрастают говнокодом. Никто не пишет идеальный код. Код должен работать и решать проблемы бизнеса.
    Ответ написан
    6 комментариев