3 часа... Хех
"вся жизнь пролетела перед глазами"
А сколько нужно времени чтобы закодить одну жалкую функцию? Знаю человека который базовую имплементацию хттп сервера за это время сделал. А потом сверху навернули говна и спустя N лет оказалось необходимо прокидывать мегабайтные урлы потому что он умел только в GET
Coding = debugging copypasta from stackoverflow
Метод из стандартной библиотеки, про который говорил друг:
Справедливости ради, иногда проще написать свою имплементацию, чем использовать библиотечную.
это когда?
напрмер, когда есть дофигища всяких кастомных требований
просто функции стандартных библиотек обычно, скажем так, самые "атомарные", максимально ужатые и оптимизированные и поэтому изобретать колесо вместо них не имеет смысла т.к. производительность и т.д.
Разве что ты на основе функции стандартной библиотеки напишешь свою, что будет "расширять" функционал, но это не случай, который мы обсуждаем.
К примеру берем стандартную библиотеку С++, что там имеет смысл пытаться заменить своим велосипедом? (не используя оригинал само собой)
Разве что ты на основе функции стандартной библиотеки напишешь свою, что будет "расширять" функционал, но это не случай, который мы обсуждаем.
К примеру берем стандартную библиотеку С++, что там имеет смысл пытаться заменить своим велосипедом? (не используя оригинал само собой)
В с++ стандартная библиотека весьма примитивна, и в ней действительно только совсем уж мелкие и атомарные вещи.
Другое дело, язык, у которого в стандартной библиотеке есть, например http клиент. Который работает не так, как тебе нужно, потому что через жопу обрабатывает некоторые ответы, а тебе нужно как раз с ними работать по-другому.
Другое дело, язык, у которого в стандартной библиотеке есть, например http клиент. Который работает не так, как тебе нужно, потому что через жопу обрабатывает некоторые ответы, а тебе нужно как раз с ними работать по-другому.
О, спс за норм разъяснение.
Ближайший пример - curl против guzzlehttp/guzzle в PHP. Один - это низкоуровневая оболочка над курлом c кучей неочевидных решений, другой - это библиотека, реализующая запросы в стандарте PSR7 с достаточно простым интерфейсом
Обычно лучше придумать пару хелперов чтобы закостылить поведение стандартной библиотеки чем выдумывать свое. Куда дешевле оказывается по итогу. Из разряда "Пусть говно, зато всем известное и знакомое".
Свой гениальный фреймворк даже если решает эти проблемы сам по себе всегда привносит кучу других. СТД хотя бы пишут обычно умные дяди с опытом по крайней мере 10 лет в индустрии, а свой хттп клиент в среднем миддл с двумя годами крудоделанья на одном языке. На каком основании он считает что сможет сделать лучше чем сделано в стд зачастую загадка.
Свой гениальный фреймворк даже если решает эти проблемы сам по себе всегда привносит кучу других. СТД хотя бы пишут обычно умные дяди с опытом по крайней мере 10 лет в индустрии, а свой хттп клиент в среднем миддл с двумя годами крудоделанья на одном языке. На каком основании он считает что сможет сделать лучше чем сделано в стд зачастую загадка.
https://github.com/abseil/abseil-cpp https://www.boost.org/doc/libs/
Когда библиотечная не подходит под задачу и проще сделать свою чем попытаться прикрутить к велосипеду колесо от ЗИЛа
Когда тебя не устраивает библиотечная по скорости или памяти.
Или когда библиотечная работает с классами, в которые ты будешь конвертировать свои данные дольше, чем писать имплементацию.
Или когда библиотечная забагована.
Это только частые случаи.
Или когда библиотечная работает с классами, в которые ты будешь конвертировать свои данные дольше, чем писать имплементацию.
Или когда библиотечная забагована.
Это только частые случаи.
Например, для возведения во 2-ю степень
В смысле вместо x*x писать функцию?
Да и для возведения в степень в стандартных библиотеках функции есть (всякие pow() и т.д.)
Да и для возведения в степень в стандартных библиотеках функции есть (всякие pow() и т.д.)
ну в жабаскрипте таким страдают - пишут плагины на суммирование и возведение в степень. А для возведения в целую степень не нужны и стандартные функции - это будет гораздо медленнее чем просто умножение - pow() использует внутри сложение степенных рядов
На счет pow(), вроде его выгодней использовать если степень больше 3
нет. Почитай о степенных рядах чтоб понять как это работает
А потом ты отделяешь этот кусок кода в свою open source либу, потом эту либу начинает юзать крупный фреймворк, потом тебя добавляют в контрибьюторы фреймворка, и теперь у тебя две работы - основная и этот ебучий фреймворк. Нахуй надо. Проходили. Стандартная либа рулит.
> потом тебя добавляют в контрибьюторы фреймворка
пропущен шаг "потом всякие кретины начинают писать ишью что они хотели при помощи твоего кода запустить космический корабль, но у них не получилось", потом ты задалбываешься вусмерть
потом ты посылаешь всех в хуй, и от всего проекта остается только строчка в резюме, которую можно вспомнить во время тех собеседования
пропущен шаг "потом всякие кретины начинают писать ишью что они хотели при помощи твоего кода запустить космический корабль, но у них не получилось", потом ты задалбываешься вусмерть
потом ты посылаешь всех в хуй, и от всего проекта остается только строчка в резюме, которую можно вспомнить во время тех собеседования
И заебись.
Как тебя могут добавить в контрибьюторы проекта без твоего согласия?
Ну к примеру так https://github.com/all-contributors/all-contributors. И появляется некоторое чувство ответственности. Тебе не помогали, а ты таким не будешь. И понеслась.
Ну не знаю, я просто болт кладу)
Поэтому вешаешь MIT и "SOFTWARE IS PROVIDED AS IS GO NAHUI IF YOU DON'T LIKE ANYTHING GO FORK AND FIX IT".
Эпичное заклинание
Помните! Три часа имплементации, дебага и поиска ошибки экономит 5 минут чтения документации!
Чтобы читать документацию, нужно знать басурманский и базовое представление о том, что читаешь.
А дебажить копипасту можно уже сейчас)
А дебажить копипасту можно уже сейчас)
Junior проблемы ___
Чтобы написать коммент, необходимо залогиниться