В 1992-93 году мне в руки попалась брошурка за авторством (очевидно, это псевдоним) «Слава Чип», в которой было довольно много полезностей по Turbo Pascal 5.5 и общей алгоритмике. Так вот, автор брошурки утверждал, что минимальный срок освоения незнакомой технологии — 3 месяца ежедневной практики по 2-4 часа.
Потому что:
— нужно изучить документацию. Если это библиотека, скажем, в 1500 функций — только на чтение по диагонали у вас уйдет неделя и выше, в зависимости от качества документации.
— нужно полистать примеры кода и сырцы, если они доступны. Чтение библиотеки в 20к строчек — это месяц работы.
— нужна практика «на кошках», особенно если технология меняет привычные вам шаблоны. На примере того же Elm, я регулярно наблюдаю в slack-чате одни и те же вопросы: как отправить HTTP-запрос, как распарсить JSON. Как работают Subscriptions. И это всего лишь Elm — примитивный коцый язык, охаскеллированный бейсик для веба.
Если говорить про смену технологического стэка, например, перескакивая с JS на Python (или наоборот), то добавьте сюда время на изучение доступных конкурирующих между собой решений (фреймворки, библиотеки, better practices, инструменты для скаффолдинга, разработки, поддержки кода проекта) — это никак не меньше 3 месяцев, несмотря на обилие готовых ответов на SO.
Сколько времени у вас займет/заняло разобраться с borrowing & lifetimes в Rust? Сколько времени понадобится, чтобы начать уверенно писать на Factor?
По оценке рисков при выборе технологий тоже не всё так гладко: жил-был RethinkDB с коммерческой поддержкой, сильной командой и инвестициями в шестизначную сумму. Прошло 4 года — и, бульк, контора закрылась, проект фактически не разрабатывается, несмотря на то, что планы были ого-го.
Пикантность ситуации в том, что каноническое определение ООП на классах звучит так: ООП — это парадигма программирования с использованием объектов, которые являются экземплярами классов, которые в свою очередь образуют иерархию (т.е. наследуются друг от друга).
Отсюда автоматически вытекает необходимость наследования и полиморфизма, а инкапсуляция идет как маленький бонус — было бы странно носить данные объекта (ака его внутреннее состояние) отдельной структурой данных.
Ну и касательно повторного использования — если вспомнить времена Turbo Pascal 5.5 и становления Java — основная киллер-фича ООП, которая хорошо покупалась бизнесом, звучала именно как «возможность повторного использования кода». Это исторический факт.
Другое дело, что практика показала, что профит от повторного использования ООП-кода чуть менее чем ноль.
С самого начала повсеместно было именно self = this, потому что это очевидное и простое решение. А уже потом, с появлением prototypejs публика прозрела, что оказывается JS — это Scheme в Cи-подобном синтаксисе. Вернитесь в 2005 год и расскажите мне, что там у вас полифилится и насколько хорошо.
поддержка bind появилась в Firefox 4.0 в 2011 году. С остальными браузерами примерно та же фигня. Дата выпуска спецификации совершенно минорна в данном контексте.
в переводе на мир материальных товаров это звучит так: соберите мне кастомный автомобиль. Краштесты не нужны, обкатка не нужна. Просто соберите. Да, гарантия тоже не нужна.
Отсутствие тестов на код не оставляет шансов на изменение скоупа продукта как в ходе разработки, так и после нее, и делает багфиксинг неприемлемо дорогим.
Зависит от специфики софта на сервере. Например, если у юзера есть возможность вынудить сервер сделать запрос во внешний мир — будет видно откуда пришел запрос. Например, при создании превью картинки по сторонней ссылке.
Прямо кладезь вредных советов, начиная с регистрации домена на reg.ru, установки пароля на юзера вместо ssh-ключа, использования sftp вместо git, не говоря про «иногда одного раза не хватает (не все начинает работать так, как нужно), поэтому приходится грузить несколько раз».
Шаманские танцы с бубном.
Примерно так же, как на Антарктиде. Кто сказал, что у в интернете у вас есть права?
Потому что:
— нужно изучить документацию. Если это библиотека, скажем, в 1500 функций — только на чтение по диагонали у вас уйдет неделя и выше, в зависимости от качества документации.
— нужно полистать примеры кода и сырцы, если они доступны. Чтение библиотеки в 20к строчек — это месяц работы.
— нужна практика «на кошках», особенно если технология меняет привычные вам шаблоны. На примере того же Elm, я регулярно наблюдаю в slack-чате одни и те же вопросы: как отправить HTTP-запрос, как распарсить JSON. Как работают Subscriptions. И это всего лишь Elm — примитивный коцый язык, охаскеллированный бейсик для веба.
Если говорить про смену технологического стэка, например, перескакивая с JS на Python (или наоборот), то добавьте сюда время на изучение доступных конкурирующих между собой решений (фреймворки, библиотеки, better practices, инструменты для скаффолдинга, разработки, поддержки кода проекта) — это никак не меньше 3 месяцев, несмотря на обилие готовых ответов на SO.
Сколько времени у вас займет/заняло разобраться с borrowing & lifetimes в Rust? Сколько времени понадобится, чтобы начать уверенно писать на Factor?
По оценке рисков при выборе технологий тоже не всё так гладко: жил-был RethinkDB с коммерческой поддержкой, сильной командой и инвестициями в шестизначную сумму. Прошло 4 года — и, бульк, контора закрылась, проект фактически не разрабатывается, несмотря на то, что планы были ого-го.
ЗЫ. https://habrahabr.ru/post/277323/
Отсюда автоматически вытекает необходимость наследования и полиморфизма, а инкапсуляция идет как маленький бонус — было бы странно носить данные объекта (ака его внутреннее состояние) отдельной структурой данных.
Ну и касательно повторного использования — если вспомнить времена Turbo Pascal 5.5 и становления Java — основная киллер-фича ООП, которая хорошо покупалась бизнесом, звучала именно как «возможность повторного использования кода». Это исторический факт.
Другое дело, что практика показала, что профит от повторного использования ООП-кода чуть менее чем ноль.
Такие дела.
Отсутствие тестов на код не оставляет шансов на изменение скоупа продукта как в ходе разработки, так и после нее, и делает багфиксинг неприемлемо дорогим.
шта???
https://geektimes.ru/post/244414/
https://habrahabr.ru/post/253905/
https://vc.ru/n/surfingbird-domain
Шаманские танцы с бубном.