• Не понимаю паттерн MVC. Что почитать/посмотреть?

    FanatPHP
    @FanatPHP
    Чебуратор тега PHP
    Как всегда, набежало "специалистов"-попугаев, повторяющих заученные фразы, но так и не понявших ни что такое сам паттерн, ни вопроса, который был задан.

    Хотя ответ очень простой и первый вопрос автора даёт очень простую подсказку.

    Вся суть эмвэцэ в том, что это всего лишь интерфейс. Штепсель. Розетка, через которую твое приложение подключается к веб. Веб-интерфейс твоего приложения.

    То есть к самому приложению, если подумать, отношения не имеет.

    И из понимания этого простого факта становится ясно, зачем нужен контроллер - в нем и происходит это самое соединение. Веб запросы транслируются в обращения к модели. А ответ модели - в красивые веб странички, в чем помогает Вью

    При этом модель - это не убогий интерфейс к таблице в бд, как думают все попугаи. А собственно все приложение и есть. Это ещё называется бизнес-логикой.

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

    Ответ с картинками и видео с ютюбе https://qna.habr.com/answer?answer_id=1475989#answ...
    Ответ написан
  • Почему PHP теряет популярность?

    FanatPHP
    @FanatPHP
    Чебуратор тега PHP
    Не знаю, не знаю. Судя по количеству тупых вопросов на Тостере, стать менее популярным пыху совсем не помешало бы, да только не получается никак.
    Ответ написан
  • Как перестать говнокодить и принимать неверные архитектурные решения?

    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-ов, рано или поздно обрастают говнокодом. Никто не пишет идеальный код. Код должен работать и решать проблемы бизнеса.
    Ответ написан
  • Как оценить свои профессиональные навыки?

    @captainbeyond
    Частота обращений к документации не является показателем профессиональных навыков - знать всё наизусть излишне в нашем деле, всегда проще обратиться к информации в нужный момент)

    А профессиональные навыки оценит работодатель, либо боевой проект) Ну, или пройдитесь по какому-нибудь роудмэпу и оцените в процентном соотношении, что вы уже знаете.
    Ответ написан
  • Как составить план обучения html и css?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Толку точно не будет, если вместо учёбы составлять планы. А по поводу курсов и видео-уроков, стоит поискать по Тостеру, здесь про этот шлак часто писалось. В частности раз и два.
    Ответ написан
  • Планшет или электронная книга?

    @evgeniy_lm
    Немного теории. Человек за миллионы лет эволюции приучен пользоваться отраженным светом. С другой стороны все современные девайсы отображения информации являются прямыми излучателями, т.е. грубо говоря любой экран это "лампочка". Само собой сидеть и пялится на лампочку не есть хорошо. При этом не важно какой абажур на нее натянут хоть TFT, хоть IPS или еще какая хрень.
    Другое дело eInk. По сути это навороченный лист бумаги, само собой чтение электронной книги так же вредно как и обычной (почти ни как). С другой стороны приобретая электронную книгу вы должны понимать, что это всего лишь книга (ну может еще и блокнот для заметок), ни какого интернета и игр. Так же нужно учитывать что почти вся техническая литература имеет большой формат и читать на 6-7" читалке будет проблематично, а большие (10"+) стоят очень дорого, про цветные я вообще молчу.

    В итоге если вам нужна именно книга (только читать) и у вас достаточно денег то ищите 10" книгу может даже цветную, если ваш бюджет строго ограничен то берите планшет 10" на Super AMOLED или хотя бы IPS
    Ответ написан
  • Является ли программист творческой профессией?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    И ДА и НЕТ.

    ДА - потому что у каждой задачи есть несколько вариантов решения - как именно поступить это и есть творчество.

    НЕТ - потому что программирование это точная наука и заказчик врятле докопается что код "смотрится как-то бледно" и попросит "добавить красненького", код работает и точка - это главный плюс точных наук. В то время как в граф. дизайне например творится полный 3,14здец когда секретарша заказчика может запросто похерить тебе отличный макет просто потому что ей с её ПТУшным образованием он не понравился.
    Ответ написан
  • Какие выбрать платные курсы по изучению php?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Никакие.
    Порядок самообучения для любого языка:
    1. Учим базу по официальной документации.
    2. Практикуемся (LOOP: 5-10)
    3. Учим следующий более сложный раздел
    4. Смотрим исходный код лидирующих и актуальных проектов для понимания правильной организации кода (код микрофреймворка для разработки или код простого приложения).
    5. Пробуем сделать похожую структуру кода сами.
    6. GOTO 2
    Ответ написан
  • Теоретическая база для создания игр?

    dollar
    @dollar
    На чёткий вопрос - чёткий ответ.
    1. Сначала придумывается идея. С прицелом на коммерческий успех, конечно же, то есть в идеале она должна сразу содержать USP. Автор идеи, как правило, становится главным идеологом игры и в будущем контролирует её воплощение, хотя может и какую-то посредственную роль занять в будущем.

    2. Пишется вижн игры. На этом этапе нужно определиться с платформой (или платформами), жанром, сеттингом, моделью монетизации и распространения, перечислить основные механики геймплея или даже составить небольшой список основных фич, графический стиль, ЛОР (в общих чертах), ссылки на похожие игры и произведения (которые вдохновили). Ну и конечно же USP - помимо основных фич нужно 1-3 киллер-фичи, которые и сделают игру успешной по вашему мнению. Это всё нужно, чтобы показывать другим людям и у них было понимание идеи игры, а не каша в голове.

    3. Делается прототип игры. Можно даже не игры, а ключевой фичи. Два варианта, зачем это нужно: а) для себя, чтобы понять, что идея никуда не годится и надо её менять или улучшать б) чтобы показать инвестору, дать пощупать и понять, чего вы хотите (читать текст никто не любит, а кнопки потыкать всегда приятно и более понятно). Это минимум программирования, или вообще его отсутствие (прототип из бумаги дешево и сердито).

    Максимальная команда на стадии прототипа состоит из 4 человек - автор идеи, программист, геймдизайнер, дизайнер (по крайней мере, в ubisoft опытным путем пришли именно к такому составу). Но в целом один человек может справиться.

    4. Формируется, так называемый, feature list, это уже конкретные задачи, каждая из которых (если вы планируете делать по скраму) занимает не больше 5 дней, иначе делится на более мелкие задачи.

    3 и 4 можно поменять местами, или делать параллельно, если вы хотите денег от инвестора. Хотя в целом это отдельная история, т.к. инвестору больше подойдет бизнес-план, составление которого выходит за рамки вопроса.

    Дальше, собственно, возможно начало разработки, если есть деньги, команда, ну или если все согласны на дошираке энтузиазме работать. Одному браться за реализацию крайне не советую, хотя это и не запрещено. И с чего вы взяли, что разработка сводится к программированию? Есть же еще дизайн, геймдизайн, звук, левел-дизайн, ui, ux, ближе к альфе нужен маркетинг и т.д. В некоторых играх программирования практически нет. И всем этим зоопарком ещё и управлять нужно, не забывая про необходимую бюрократию и юридические дела (и не факт, что одного человека хватит на управление). Так что в теории там ещё огого сколько всего помимо программирования. Надеюсь, я вас немного отрезвил.
    Ответ написан
  • Где лучше качество кода?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    Все плохо
    • Глобальные переменные — зло
    • На лицо некий код, который и с сессией работает и с БД — явное нарушение общепринятных принципов, например SRP
    • $dao как инициализирована? Явно не через конструктор
    • Использование цифры, вот сиди гадай по ней — это плохо, используйте именованную константу. Например 3 — это некий статус для desktop, вот и назовите ее STATUS_DESKTOP, хотя далее...
    • вы обращаетесь к одному методу, который шибко умный — работает с флагами, тем самым нарушая SRP и сам содержит if/else, сделайте просто 2 раздельных метода:
      getMobileOpinionList()
      getDefaultOpinionList()

    • Предикат лучше вынести в отдельный метод isMobileOnly(), тк условия могут поменяться в нем, не будете же везде в if менять по всему проекту
    Ответ написан
  • Каковы перспективы изучения web дизайна?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Во-первых, дизайн и разработка - это две очень разных вещи. Во-вторых, дизайнеру надо изучать не технологии, а учиться рисовать, развивать чувство прекрасного, изучать психологию, цветовосприятие, эргономику и т.п. А в-третьих, в работе дизайнера очень много боли. Постановка задачи обычно очень неконкретная. Оценка дизайна всегда субъективна, а потому очень много споров с заказчиками. Каждый начальник склада с умением рисовать на уровне каки-маляки и вкусом типа www.theworldsworstwebsiteever.com будет учить вас делать свою работу. К тому же макеты очень легко украсть. В общем это та область, в которую идти надо по велению сердца и в силу природных талантов.
    Ответ написан
  • Что делать если не знаешь как реализовать что-либо при написании программы?

    @EvgeniiR
    https://github.com/EvgeniiR
    Я такой человек который предпочитает полагаться на свои знания, да и вообще на самого себя (Ну, то есть могу взять и изобрести велосипед, как говорится)

    Синдром неприятия чужого кода. Пройдёт )

    Ведь невозможно абсолютно всё держать в голове и при необходимости запрограммировать что угодно или я что-то не так понимаю?

    Есть базовые вещи и понимание как что-то делать или как что-то сделано, а есть кучи либ и инструментов выполняющих +/- те же задачи документацию по которым можно загуглить за пару минут и прочитать за пару часов. Запоминать нужно первое.

    В гуглении нет никаких проблем и ничего предосудительного ни для кого. Совсем.
    Тем более при изучении инструментов/фреймворков и т.п.

    Для базовых вещей(паттерны, дизайн и т.п.), конечно, стоит начать с книг.
    Ответ написан
  • Почему инъекция сервиса в сущность считается плохой практикой?

    @BorisKorobkov
    Web developer
    Правильнее сказать не "плохая практика", а "нарушает SOLID".
    "Сервис в сущности" нарушает принцип единственной ответственности (SRP), совмещая в одном объекте как представление самого объекта, так и какую-то внешнюю логику.
    Это не значит, что это "плохо" или "хорошо"! Есть разные (иногда взаимоисключающие) подходы, не обязательно упарываться на строгое следование им всем. Вот пример, когда это можешь сильно усложнить разработку: https://habr.com/ru/post/153225/

    UserPasswordEncoderInterface и NotBlank - это не сервисы, а валидаторы. Они относятся к внутренней логике объекта, не только не нарушают SRP, но и должны быть именно в этом объекте.
    Ответ написан
  • Правильно ли написана программа которая вычисляет и выводит на экран площадь треугольника если известны его стороны?

    @BorisKorobkov
    Web developer
    Неправильно.
    Формула Герона - это не корень из суммы квадратов сторон. Откройте учебник математики.
    Ответ написан
  • Как начать зарабатывать начинающему web-разработчику в 17 лет?

    Zoominger
    @Zoominger
    System Engineer
    Как начать зарабатывать начинающему web-разработчику в 17 лет?

    Макдональдс, стройка, кошение травы.

    зарабатывать на вебе

    Пхаха.

    Хочу устроиться джуном в веб-студию удаленно

    Никто. Никогда. Не берёт. Джунов. На удалёнку. Точка.

    Может устроиться к кому-нибудь на фриланс

    Нет.

    Как начать зарабатывать на фрилансе?

    Никак.

    Каждую, чёрт бы её побрал, неделю такие посты. Ну погуглите хоть по Тостеру-то.

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

    CityCat4
    @CityCat4
    Если я чешу в затылке - не беда!
    Блин, а я-то думал - что же так прорвало-то? А это ж отгремели "ночи пьяных бантиков" :)

    ТС и все бывшие уже школьники - во-первых, внимательно, по буквам перечитайте ответ Рональд Макдональд - это сбережет вам всем множество нервов, времени, самооценки и здоровья.

    В-вторых:
    Никто и никогда не берет джунов на удаленку

    На удаленку берут только матерого спеца, у которого есть свой портфолио и который сам может диктовать условия найма. Джуна могут взять только в офис, потому что никому не надо отвечать за то, что он сорвал очередной дедлайн - и спросить-то с него нечего! Если джун устроился в офис - за любые деньги (здесь любые - это в совершенно буквальном смысле!) - он должен корпоративный гимн распевать от счастья :) И жужжать электровеником, работать, набираться опыта, помня что он никто и звать его никак.

    Да, на фрилансе люди зарабатывают. И иногда даже прилично так, что не стыдно сказать :)

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

    Быстро и много в ИТ во фрилансе джуну заработать невозможно

    Особенно сейчас, когда после "ночи пьяных бантиков" туда кинутся голодноглазые школьники, мечтающие о чудо-заработках - и скинут (ну, те, кто реально займется) и без того низкие цены и усилят и без того высокую конкуренцию...

    Хотите за лето заработать денег, а не считать копейки на проезд - оставьте мечты о том, чтобы работать дома. Дома работать не получается и у людей с в стопицот раз большим уровнем самоорганизации, чем у вчерашнего школьника. Идите в Макдональдс - только не балдеть, а работать, на стройку, в промоутеры, листовки разносить, собак чужих выгуливать...

    Добро пожаловать в жесткий и безжалостный мир взрослых. Вы все, кажется, в него так торопились - бухать и девок щупать? You are welcome. Но не обижайтесь на жесткость реакции - миру на вас на самом деле плевать...
    Ответ написан
  • За счет чего Тостер может составить конкуренцию русскоязычному Stackoverflow?

    edinorog
    @edinorog
    Троллей не кормить!
    Забавно. Все опять помешались на + - и не могут придумать норм идей.
    1. вливание темы в уже существующую. чтоб не плодить одно и то же
    2. денежное поощрение за хорошие ответы (с рекламы доллар жалко да???) от администрации
    3. записная книга хороших ответов
    4. кнопка "на вопрос нет ответа".
    5. денежное поощрение от вопрошающего (помогает при написании конфигов и скриптов)
    6. кнопка "вставить ответ из книги быстрых ответов"
    7. нормальные ачивы с нормальными рейгингами и чтоб это можно было вставить на другой сайт (и не стыдно!)
    8. мобильные клиенты для всех платформ!
    9. оперативное внедрение нововведений
    10. переключение на отображение вопросов в полоску (один вопрос одна строка!). а то не торкает проматывать это буйство
    11. возможность вносить примечание в конфиги и скрипты с указанием как оптимально
    12. наконец сделать страницу с правилами и наказаниями!!!!!!!!!!!!!!!!!!!!!!!!
    13. появление ответов в теме без обновления страницы
    14. кнопка "позвать платного специалиста"
    15. добавить встроенный графический редактор сети (а то иногда такие фантазеры люди!!!!) с возможностью скопировать эту сеть и изменить ее в ответе

    ну и короче мне надоело. мне за это не платят и ко мне полгода было свинское отношение как к пользователю ослика. придумывайте сами дальше.
    Ответ написан
  • Какой язык сейчас актуальный в gamedev?

    sim3x
    @sim3x
    java - android
    objective-c/swift - iphone
    c# - кроссплатформенно
    с++ - везде
    lua - кроссплатформенно
    js - веб

    Тем кто хочет легко выучить все ЯП даются очень сложно
    Ответ написан