• В чем разница между 'фабричным методом' и 'простой фабрикой'?

    Adamos
    @Adamos
    В вашем же примере единственное назначение класса фабрики - создание подклассов в одном методе.
    А классы с фабричным методом умеют свой функционал ПЛЮС могут вернуть себя единообразным для всех них образом. Причем этот самый метод getMobile может заодно участвовать и в других методах того же класса, когда ему понадобилось создать клона, например.

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

    Паттерны - это же не о классах, а о взаимодействии между ними и уменьшении связности.
    Ответ написан
    Комментировать
  • Что есть что в ссылке при MVC патерне?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Нет прямой взаимосвязи между /host/part1/part2/part3 и контроллером, экшеном и параметрами, это все задается индивидуально в коде соответствия роутов и их обработчиков. Почитайте, как реализован роутинг в laravel или yii2 (в symfony слишком много нового для старта), есть статьи из разряда "пишем простой router на php".
    Ответ написан
    Комментировать
  • 4K монитор для программирования: 32" или 43"?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    Если для программирования стало мало и хочется 4к то кто-то пишет очень и очень плохой код. Раз много открытых процессов то проще ещё пару мониторов поставить - квадратом. Один большой монитор хорошо только на маках - когда у тебя отлично с множеством виртуальных десктопов
    Ответ написан
  • Кто то читает журнал Хакер?

    Zoominger
    @Zoominger Куратор тега IT-образование
    System Integrator
    Читал ещё на бумаге.
    Журнал для кидди-скриптеров, абсолютно не рекомендую для углублений. Какие-то невнятные воспоминания о будущем, громкие названия над унылыми статьями, всё такое хаккирско-стереотипное в оформлении, короче, чисто над одноклассниками возвыситься.
    Ответ написан
    1 комментарий
  • Как максимально четко и уверенно рассказать про ООП?

    @StepEv
    Эти приниципы ничего не дают, если нет понимания как их применят ьна практике, и навыка этого применения. Часто сталкиваюсь с тем, что рассказать то принципы могут, объяснить зачем они, увы, уже нет.

    Рекомендую книгу "Применение UML 2.0 и паттернов проектирования" Крейга Лармана. По идее, после прочтения вопросов не должно остаться. Ну, можно потом заполировать вот этой книгой https://habr.com/ru/post/140284/
    Ответ написан
    1 комментарий
  • Если вставлять фрагменты php кода в html разметку - плохо, то что тогда хорошо?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В любом утверждении важно понимать контекст.
    А также учитывать, что 95% говорящих вообще не понимают, что говорят.

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

    Если у тебя при запросе в БД тут же вываливается хтмл - это так и есть, извращение.
    Если ты, как аккуратный пионер, сначала получил все данные, а потом приинклюдил файл шаблона, в котором пхп занимается только выводом полученных раньше данных - то сделал все правильно и со временем освоишь работу с настоящими шаблонизаторами.
    phpfaq.ru/tech/tpl
    Ответ написан
    Комментировать
  • Как можно обезопасить свой сайт от запросов такого вида?

    @alex1478
    1. Можно при загрузке переименовывать файлы, давая файлам названия наподобие d025a9501c8e4c95b614ef0a18796354.txt. Наиболее оптимальный вариант для статики.
    2. Можно отдавать пользователям файлы через php скрипт (или что там у вас): что бы запросы к файлам были вида example.com/download.php?file=d025a9501c8e4c95b614ef0a18796354. Обращение к файлам напрямую запрещаете средствами веб сервера.
    Ответ написан
    Комментировать
  • Идейка для стартапа, какой стек подойдет?

    Sanasol
    @Sanasol Куратор тега Веб-разработка
    нельзя просто так взять и загуглить ошибку
    хозяину ничего не нужно делать, он открывает приложение и фоткает прилавок с ценниками

    Так ничего или всё таки нужно)
    проблема-то здесь как раз таки в этой самой "цифровизации" которой нет в голове у людей, а не в том что никто такой сервис еще не придумал.

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

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

    Дальше идёт собственно проблема "открываются новые бизнеса каждый месяц" в одном и том же месте. Кто это будет актуализировать? Опять же либо люди которых надо заставить как-то отметить что точка уже закрылась, либо новый хозяин точки должен подтвердить что он теперь тут и получить доступ к управлению данными чтобы заполнить новые. А если нового хозяина еще нет, а если новый про ваше приложение не в курсе и т.д.
    На выходе куча мертвых точек которые никто кроме вас не собирается актуализировать.

    В общем все проблемы от людей так или иначе. И либо вы сами будете все это заполнять(2ГИС например сам всё собирает), либо будет архив местячковых закрытых точек.

    ап
    всё что упомянуто так или иначе есть в гугле/яндексе. И там не обязательно быть хозяином даже чтобы добавить новую точку на карту, вот только кому это надо?
    У гугла так вообще глобальная программа контрибуторов/"местных экспертов" где их всячески пинают и заставляют заполнять карты за ачивки. И работает это у гугла только потому что аудитория у гугла можете себе представить какая. Опять же там где оно никому не надо гугл карты тоже пустые.
    Ответ написан
    8 комментариев
  • Как разбить на классы?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Учусь рисовать. Интересует, какие краски использовать. Не хочу углубляться в сюжет, просто интересует какие краски нужны.

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

    migelbd
    @migelbd
    Человек
    В продуктах JetBrains есть закладки..
    Ctrl+Shift+(1-9) - установить закладку
    Ctrl+(1-9) - перейти на закладку
    Ответ написан
    Комментировать
  • Рефакторить или рерайтить?

    tumbler
    @tumbler
    бекенд-разработчик на python
    Был подобный опыт, правда с собственным кодом.

    Первая история:

    Была поставлена задача в Красивую И Стройную Архитектуру пилить одну новую фичу. Фича в архитектуру не вписывалась. Варианты были или уродовать текущий код и сделать его ужасом, летящим на крыльях ночи, или аккуратно вырезать пол-проекта и заменить другой Красивой и Стройной. С товарищами посовещались и решили, что лучше ужас, чем десятикратное превышение по срокам. Ужас до сих пор живет )

    Вторая история:

    Другая Красивая и Стройная архитектура давным давно постарела и разжирела. Раз в неделю приходил очередной фичебред, который старательно нашлепывался сверху. В результате через 3 года проект был написан с нуля, на другом языке, другом фреймворке, с другими требованиями. До перезапуска проекта прошло полгода. И потом еще наверно года два аккуратного развития до состояния "как было".

    Вот и думайте, есть ли у вашего начальства деньги на "переписать с нуля", или только на "потерю времени при работе с легаси".
    Ответ написан
    Комментировать
  • Зачем нужен __construct для присваивания значений переменным?

    @NinjaNickName
    Web разработчик
    Конструктор нужен для выполнения кода при создании объекта.

    PHP 5 позволяет объявлять методы-конструкторы. Классы, в которых объявлен метод-конструктор, будут вызывать этот метод при каждом создании нового объекта, так что это может оказаться полезным, например, для инициализации какого-либо состояния объекта перед его использованием.

    https://www.php.net/manual/ru/language.oop5.decon.php
    Ответ написан
    Комментировать
  • Сделать карьеру на PHP: Symphony vs Zend?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос, как всегда, поставлен жутко неграмотно, так сказать, по деревенски: без какого бы то ни было видения перспективы, хотя бы на 5 лет вперёд.

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

    Это, я не знаю, как спросить "хочу быть столяром, какую отвёртку мне изучать, крестовую или шлицевую?".

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

    А если считать пределом мечтаний клепание говносайтов на некоем идеальном фреймворке на все времена, то может так случиться, что через 5 лет к условным "ларавельщикам" будут относиться так же, как сейчас к вордпрессникам.

    И кстати для изучения принципов симфони подходит лучше

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

    Да, и самое главное я тоже забыл сказать. Коллега xfg в самую точку написал в комментарии:

    Фреймоворк - это на самом деле тонюсенькая прослойка над приложением. Это, по сути, система подай-принеси, принять запрос с фронта и отправить ответ. А что именно будет в ответе - решает не фреймворк, он здесь уже не при делах.

    Очень на эту тему прочищают мозги доклады и видео Дмитрия Елисеева. У него на сайте как раз появился доклад с PHP Russia 2019, который я горячо рекомендую.

    На ту же тему был и доклад Томаша Вотрубы, кстати. Что фреймворки, по сути, можно менять как перчатки, при желании. И у него есть даже инструмент для этого. Но в данном случае речь не об инструменте а о том, что фреймворк- далеко не главная часть приложения, и упираться в изучение фреймворков это все равно что в изучение отверток.
    Ответ написан
    4 комментария
  • Java и PHP хороший союз?

    Adamos
    @Adamos
    У бэкенда должно быть API, которое можно дергать запросами из любого языка и из любой системы.
    Если оно есть - с любым клиентом будет "хороший союз".
    Если нет - выкиньте и перепишите.
    Ответ написан
    Комментировать
  • Что нужно для создания электронного дневник на php+mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Js на начальном этапе не нужен, музчина из соседнего ответа не в теме.
    Ну точнее он живёт видимо в прошлом веке и подключен к интернету через модем по телефонной линии. Учителя же подключены по 4g, и "ждать" перезагрузки будут миллисекунд 50.

    По срокам же вынужден огорчить. Полгода упорных занятий дадут тебе первую кривую версию которую ещё года два допиливать и ужасаться своим решениям принятым на начальном этапе.
    Ответ написан
    5 комментариев
  • Для чего используют функции serialize/unserialize?

    Melkij
    @Melkij
    PostgreSQL DBA
    если открыть файл сессии текстовым редактором

    То вы как раз и найдёте serialize/unserialize, которые механизм сессий и использует для чтения/записи данных в файле. (разумеется, если не говорить о кастомных sessionhandler - там может быть что угодно)

    кусок кода корзины товаров (добавляет товар в корзину):

    Здесь serialize/unserialize не нужны и никакого смысла либо пользы не несут.

    serialize выполняет представление переменной PHP в некий бинарный вид (и это важно! результат serialize не текст, а именно бинарный блоб, в том числе может штатно использоваться NUL-байт). unserialize это представление восстанавливает обратно. Обратите внимание на большой варнинг в документации и не используйте unserialize на данных которые вы не контролируете полностью.

    А если я попробую просто записать в ячейку не сериализованный массив?

    Получите слово Array вместо данных и предупреждение от языка за некорректное использование массива.
    Ответ написан
    Комментировать
  • Как вы ориентируетесь в чужом коде?

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

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    23 года? И столько тлена в словах? Ну ловите мою кулстори, у меня тлена в 23 было куда больше...
    Чуть менее двух лет назад, летом 2013, мне было 23, и я имел НОЛЬ опыта работы (если не считать 2 месяца стажерства в магазине комп техники по практике от универа). Кое-как устроился seo-шником в местную веб-студию, даже не зная что это за работа, во время отправления резюме (гуглил после уже). Конечно, как только приступил к работе, сразу понял что seo это не мое, но это помогло мне через 3 месяца на том же месте стать веб-джуниором. И вот я стал джуном, имея за плечами 4 курса на codecademy и одну, плохо прочитанную, книгу. С космической зп в 12к рублей! Через 5 месяцев я уже приступил к работе по удаленке с другими людьми, где платили 30к, и при этом можно было работать по 15-25 часов в неделю. Это позволило мне читать все интернеты на тему фронтенда, а потом, самое важное, пилить демки на кодпене, засиживаясь до ночи. В марте уволился, отдохнул, и в апреле начал очень лениво заполнять профили на зарубежных фриланс биржах. А потом на меня внезапно свалилось подобие сарафана из-за моих демок, и люди просто стали писать мне с предложением что-нибудь запилить, хотя профили я так и не запилил на биржах. Сейчас пилю 2 проекта, с рейтом в 30$/h, для клиентов пустяковая цифра, а для моего Архангельска это вообще какой-то криминал :)
    Ну а вам, с вашим имеющимся бэкграундом, вообще не знаю чего бояться. Проблемы могут быть, только если окажется что программирование это "не ваше". Если же вы любите это дело, то просто садитесь, и начинайте пахать. В первую очередь на свое саморазвитие, поначалу я бы даже посоветовал искать что-то с удобным графиком/местом работы, ибо "неудобная" офисная жизнь убивает весь энтузиазм как правило. А без энтузиазма на старте никуда не уехать.
    Ответ написан
    16 комментариев
  • Можно ли из Сео оптимизатора вырасти в веб разработчика?

    @abberati
    frontend-разработчик
    В веб-разработчика можно вырасти из парикмахера, воспитателя, дальнобойщика и даже из ребёнка!
    Ответ написан
    Комментировать