Если не изобретать «велосипед», как мне углубиться в суть?

Все кругом пишут о том, что не стоит изобретать уже изобретенное, например пишу на php. Написал свою обертку для curl, а зачем? Есть же готовое решение, к примеру guzzle. Но как мне вникнуть в суть подачи запроса на сервер, если я буду все время использовать готовые решения? Вот этого я не понимаю. Посоветуйте пожалуйста.
  • Вопрос задан
  • 858 просмотров
Решения вопроса 1
Все кругом пишут о том, что не стоит изобретать уже изобретенное, например пишу на php. Написал свою обертку для curl, а зачем? Есть же готовое решение, к примеру guzzle. Но как мне вникнуть в суть подачи запроса на сервер, если я буду все время использовать готовые решения? Вот этого я не понимаю. Посоветуйте пожалуйста.

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

Возможно вы задавали кому-то вопрос в контексте обучения, а вам ответили в контексте написания боевого кода.

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

Когда-нибудь вы можете столкнуться с ситуацией, когда для вашей задачи нет готового инструмента, который лучше - тогда ваша работа уже не будет велосипедом.
Самое главное при работе в IT - задумываться о том, почему именно вам приходится впервые решать какую-то задачу. Почему именно вы, почему именно сейчас. Возможно это иллюзия, и вы не первый, кто решает эту задачу, и можно воспользоваться трудом других людей.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 6
Нужно научиться задавать себе вопрос 'для чего', и отвечать на него.
Для примера, если ответ 'для себя и научиться' - то своя обертка.
Если в условный продкашн и кодом владеете не только вы - то guzzle.
Ответ написан
@mayton2019
Bigdata Engineer
Это - договоренность в команде. Если ты - сам себе фриласнер то можешь делать себе сколько угодно велосипедов.
Если ты работаешь в бригаде разработчиков - то спроси у старших по конвенции кода. Что можно? 99% что даже включать в проект ничего не надо. УЖе тех библиотек что подключено - достаточно для строительства космических ракет.

У анти-велосипедной позиции есть другая - проблема. Тонна непонятных зависимостей. Собираешь свой артифакт - и у тебя 1% твоего кода и все остальное - какие-то непонятные артифакты которые зашли прицепом.

Я недавно подключил в свою утилиту maven зависимость для поддержки Microsoft Blob и транзитивно затащил еще порядка 20 других библиотек (40Мб) и логгировани я http-клиента и даже json парсер. Тоесть у меня уже все есть. И ничего более не надо. Но я не парился поскольку пользователь этой утилиты - только я сам. Автоматизация для себя.

Есть вариант борьбы с велосипедом - зайти в опенсорцную библиотеку и просто скопируй одну единственную функцию которая нужна. Только стандартную шапку с соглашением не забудь. Я такое часто делал когда нужно сделать нечто вроде back-port.
Ответ написан
Комментировать
krdpsr
@krdpsr
loading...
в этом весь смысл - ты должен использовать готовые решения
как все
и не задавать вопросов
и не изобретать велосипедов

главное чтобы ты был стандартным программистом
чтобы тебя легко можно было уволить и заменить на другого

хочешь уметь всё делать сам - пиши на чистых языках и изобретай
хочешь на работу - страдай как все и терпи это безумие

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

ссылки по теме:
https://www.youtube.com/watch?v=1iJCowlrCeM&featur...
https://www.youtube.com/watch?v=brTmPYHV42I
https://habr.com/ru/post/478844/
Ответ написан
uvelichitel
@uvelichitel
habrahabr.ru/users/uvelichitel
А как насчёт поддержки?
guzzle в открытом доступе, коммитят 370 контрибуторов, ресолвят issues, документируют. Пользователи отлавливают ошибки.
А вы удовлетворите академический интерес, поднимете скилл, почувствуте себя сильнее. Да и забудете о своей самоделке... Интерес к этому коду потеряете и через пару месяцев забудете как он работает. А кому его поддерживать? Вам самому то больно хотелось?
Если хотите разобраться как работает под капотом, почему бы не вычитать чужой production grade код? Может быть и покоммитить, закрыть пару issue в публичном репозитарии, сделать свой вклад сообществу)
Ответ написан
Комментировать
php666
@php666
PHP-макака
Вот этого я не понимаю
никто это не понимает.
индустрия давно породила все эти инструменты, творчества тут не осталось.
твоя задача отныне - быть макакой у монитора и использовать эти библиотеки.
так все делают.

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

Так и живём.

Скоро ИИ будет писать простые приложения, используя все эти библиотеки, а большая часть программистешек отправится дворы мести.
Ответ написан
Комментировать
@BulatZiganshin
Если твоя задача решается готовой библиотекой И эту библиотеку возможно использовать по правилам компании/проекта (т.е. с учётом её размера, зависимостей, поддержки, лицензии и т.д.) - надо использовать библиотеку.

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

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

Каким же образом тогда учиться? Есть много вариантов:
* в свободное от работы время
* в рабочее время помимо основных рабочих проектов. в гугле когда-то на это выделяли 20% рабочего времени, да и в целом обычно на работе нормально смотрят что ты что-то читаешь/пишешь помимо основного проекта
* находить на работе аргументы в пользу велосипедостроения, например что это позволит уменьшить/ускорить программу, или что надо давать простор для творчества чтобы люди не закисли (вариант тех самых 20%, но встроенных в рабочий проект)
* выбирать работу с плохо поставленными процессами (госы и т.д.) :D
* двигаться в сторону тех вакансий, где велосипедостроение больше востребовано. к примеру, разработчики движков СУБД обычно сами реализуют алгоритмы и структуры данных чтобы добиться наибольшей эффективности. у нас в рф можно найти несколько вакансий в этой области. или идти в крупные компании типа яндекса/мыла/каспера, где есть инфраструктурные проекты. но в целом для этого надо сначала как-то прокачаться самому чтобы соответствовать их уровню
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы