Не стоит заниматься казуистикой. На всякий случай уточню «индивидуальный подход» — это о техническом собеседовании на должность программиста. А потом идет карьерный рост. Так вот, во многих организациях есть фильтр — «наличие ВО». Претендента могут взять программистом без ВО, но руководителем разработки он не станет никогда, и не потому что начальники плохие, не понимают его гения. Просто есть формальная внутренняя инструкция.
Понятно. В любом случае (как мне кажется) во всех случаях подход индивидуальный. Я говорил о свих наблюдениях (можно назвать это статистикой), а не о шансах.
Возможно я что-то потерял, раз за 20 лет ко мне ни разу не приходила на собеседование выпускница ВГИКА в поисках вакансии программиста, но я не понимаю, какая ваша то печаль? Поясните, плиз.
Если вы о любом техническом ВО, то в принципе — да, с любым. А программированию он мог учиться самостоятельно, но тут нет противоречия. ВУЗ учит в первую очередь самостоятельно получать знания, а не алгоритмам и программам.
Лучше быть стажёром через год самостоятельной учёбы, чем через четыре года посещения ВУЗа. Те, кто начнёт заниматься по моим рекомендациям сейчас, через 4 года будут проводить технические тесты при приёме на работу тех, кто сейчас поступает в ВУЗы
Забудьте этот совет, как можно быстрее.
Впрочем, как и вообще об этой статье.
Я провожу технические собеседования уже лет 20, поверьте, разница в кандидатах с ВО и без него есть, и выражается она даже не в общем уровне на момент собеседования, а в перспективе.
И да, автор нагло врёт, когда обещает, что вы будете проводить технические собеседования через 4 года, следуя его советам. В любой приличной компании никто вас не назначит на должность, требующей принятия хоть каких-то решений, если у вас нет ВО. Может это и несправедливо по отношению к отдельным уникам, но это — факт. Это один из фильтров, и никуда от него не денешься.
Автор сам пишет, подтверждая мои слова:
Я вот с опытом на плюсах с трудом нахожу нормальную работу
Читаете вы тоже быстро :) Семантику моего комментария вы увидели, но не поняли смысл. Я писал не столько о скорости, сколько об удобстве для определенной группы людей, владеющей определенными навыками. Десятипальцевым можно и медленно набирать текст, но использовать сочетания клавиш при этом все равно неудобно. Другая техника.
Вообще, я уже давно не пытаюсь никого ни в чем убеждать в подобных спорах. Начинал с K52 для RSX-11M, а сейчас давно уже нахожусь в комфортном для себя балансе между vim и ide, а эту дисуссию посматриваю скорее из ностальгии. Десятки лет проходят, а темы холиваров не меняются :)
Дополню фразу примером, чтобы было понятнее. Вспомните печатную машинку. Когда человек умеет быстро печатать слепым десятипальцевым методом vim для него гораздо удобнее. Все эти сочетания клавиш не просто медленнее, они мешают.
Я, конечно, заметил, как быстро вы приспустили карму Defersa (за объективный в общем-то комментарий). Но все равно спрошу.
Скажите, почему вы считаете читателей Хабра дебилами?
Не буду касаться качества содержания статьи. Тот материал, который вы выбираете для перевода, говорит о вас лучше той рекламы, ради которой этот перевод делается.
Но переводить
How I started with learning AI in the last 2 months
как
Как я учился прогать ИИ последние два месяца
…
Просто она не синглтон (по определению от банды четырех).
Посмотрите пример на стр. 137. издательство Питер, 2016 и на код создания экземпляров классов BombedMazeFactory и EnhancedMazeFactory и других возможных подклассов…
Может это и не синглтон, но только в вашем понимании, а никак не банды четырех.
Только передергивать не надо. Я не говорил о своей реализации синглтона, а о реализации данного шаблона в рамках приложения и ошибочности фразы о «собственном экземпляре». Возможно, что употребил не самое правильное слово «любой» (как альтернативу слову «свой»), но вы ведь прекрасно поняли, о чем речь.
Вы как-то все с ног на голову повернули.
Вдумайтесь — я могу заставить весь свой код, который я контролирую, использовать синглтон обертку для класса, который я не контролирую. Разницу видите?
Нет, не так.
Это значит, что если у меня в проекте есть необходимость использовать несколько экземляров класса, то я не буду заворачивать его в синглтон. А если я хочу работать только с одним экземпляром (например, это может быть что-нибудь типа PDO), то подумаю над реализацией и синглтон кмк — не самая плохая из возможных.
Если вы готовы сделать сингтон для любого класса (не трогая его самого!) — предоставьте пожалуйста код.
Хм… Да это вроде как должно быть понятно. Упрощенно, что-то типа
class Single {
static private $instance = null;
private function __construct() {}
static public function getInstance() {
if ( self::$instance === null ) {
self::$instance = new MyClass ();
};
return self::$instance;
}
}
$myClassInstance = Single::getInstance();
По поводу определения. Загуглил ради интереса — первое — из википедии. Примеров кривых куча, но в определении нет слова своего
Одиночка (англ. Singleton) — порождающий шаблон проектирования, гарантирующий, что в однопроцессном приложении будет единственный экземпляр некоторого класса, и предоставляющий глобальную точку доступа к этому экземпляру.
В связи с тем, что статья написана в стиле методического пособия, попробую немного изменить представление автора о синглтоне.
синглтон всегда имеет основную функциональность помимо контроля единственности собственного экземпляра. Синглтон — класс, реализующий полезную функциональность и контролирующий единственность собственного экземпляра.
Жирным выделены ошибочные слова. Как правило, такое определение используется для доказательства того, что синглтон не соответствует принципу единой ответственности и, следовательно — антипаттерн.
На самом деле — синглтон прост в понимании, но не совсем прост в использовании. Дело в том, что синглтон предназначен для контроля единственности экземпляра любого класса. Собственно, в этом его основное предназначение и единственная ответственность.
Все копья, которые ломаются вокруг синглтона, связаны в основном с частным (и часто
— ошибочным) случаем его использования, когда он контролирует единственность своего экземпляра и имеет какую-то дополнительную функциональность. Но это проблема не синглтона, а понимания этого шаблона разработчиком и правильности его применения.
Михаил, а как насчет вашего простого запроса в несколько строк кода? :)
На самом деле ни количество строк кода, ни количество джоинов в запросе не является определяющим фактором при выборе инструментария, но дискутировать с автором статьи на эту тему почему-то не хочется.
Вы принимаете на входе некий шаблон запроса и преобразуете его в реальный запрос, который может уже без ругани проглотить и обработать mysqli. Ну назовите это «преобразователь» или как нибудь более благозвучно, если query builder вызывает у вас идиосикразию и ассоциируется только c какой-нибудь doctrine.
Ваши знания о подготовленных запросах лишь подтверждает невозможность продолжения дискуссии.
Забудьте этот совет, как можно быстрее.
Впрочем, как и вообще об этой статье.
Я провожу технические собеседования уже лет 20, поверьте, разница в кандидатах с ВО и без него есть, и выражается она даже не в общем уровне на момент собеседования, а в перспективе.
И да, автор нагло врёт, когда обещает, что вы будете проводить технические собеседования через 4 года, следуя его советам. В любой приличной компании никто вас не назначит на должность, требующей принятия хоть каких-то решений, если у вас нет ВО. Может это и несправедливо по отношению к отдельным уникам, но это — факт. Это один из фильтров, и никуда от него не денешься.
Автор сам пишет, подтверждая мои слова:
И написал вредную методичку…
Вообще, я уже давно не пытаюсь никого ни в чем убеждать в подобных спорах. Начинал с K52 для RSX-11M, а сейчас давно уже нахожусь в комфортном для себя балансе между vim и ide, а эту дисуссию посматриваю скорее из ностальгии. Десятки лет проходят, а темы холиваров не меняются :)
Я, конечно, заметил, как быстро вы приспустили карму Defersa (за объективный в общем-то комментарий). Но все равно спрошу.
Скажите, почему вы считаете читателей Хабра дебилами?
Не буду касаться качества содержания статьи. Тот материал, который вы выбираете для перевода, говорит о вас лучше той рекламы, ради которой этот перевод делается.
Но переводить
How I started with learning AI in the last 2 months
как
Как я учился прогать ИИ последние два месяца
…
Может это и не синглтон, но только в вашем понимании, а никак не банды четырех.
Вдумайтесь — я могу заставить весь свой код, который я контролирую, использовать синглтон обертку для класса, который я не контролирую. Разницу видите?
Это значит, что если у меня в проекте есть необходимость использовать несколько экземляров класса, то я не буду заворачивать его в синглтон. А если я хочу работать только с одним экземпляром (например, это может быть что-нибудь типа PDO), то подумаю над реализацией и синглтон кмк — не самая плохая из возможных.
Хм… Да это вроде как должно быть понятно. Упрощенно, что-то типа
По поводу определения. Загуглил ради интереса — первое — из википедии. Примеров кривых куча, но в определении нет слова своего
Жирным выделены ошибочные слова. Как правило, такое определение используется для доказательства того, что синглтон не соответствует принципу единой ответственности и, следовательно — антипаттерн.
На самом деле — синглтон прост в понимании, но не совсем прост в использовании. Дело в том, что синглтон предназначен для контроля единственности экземпляра любого класса. Собственно, в этом его основное предназначение и единственная ответственность.
Все копья, которые ломаются вокруг синглтона, связаны в основном с частным (и часто
— ошибочным) случаем его использования, когда он контролирует единственность своего экземпляра и имеет какую-то дополнительную функциональность. Но это проблема не синглтона, а понимания этого шаблона разработчиком и правильности его применения.
На самом деле ни количество строк кода, ни количество джоинов в запросе не является определяющим фактором при выборе инструментария, но дискутировать с автором статьи на эту тему почему-то не хочется.
Ваши знания о подготовленных запросах лишь подтверждает невозможность продолжения дискуссии.