Есть 2 стула - писать идеально оптимизированный код, с ассемблерными вставками, с просчетами каждого таката, но абсолютно с 0 и долго, или использовать библиотеки с уже готовыми функциями(и сотней неиспользуемых), но быстро и с возможностью поддержки - никому не придутся разбирать, как же работает шаманская ебанина на чистой асме.
Не ну я бы не сказал, есть еще и третий вариант, недавно писал прогу под Аврору для хранения скидочных карт(для себя в первую очередь), по сути это мой первый серьезный проект был, код частично на плюсах, фронт QT(QML) с некоторым количеством логики, из внешних библиотек OpenCV для фотографирования обложек карт и Zint фло формирований штрих кода, остальное системные вызовы, итоговый размер 3.1 мегабайта и я бы не сказал что я сломал мозги при написании или что код сложный для понимания.
Пруф.
С Айфоном не канает. Просто зарядится на 150%. Кстати лайфхак для тех, у кого батарея быстро садится
Ну если утрировать - то да.
Если нам, допустим, нужно в проекте прочитать и расшифровать файл формата fb2, то у нас 2 варианта - или мы берем уже готовую библиотеку SuperFormatReader и в коде пишем типа
import SuperFormatReader
FBReader fbr = fbReader.Create()
txt = fbr.parce(FileName)
или пишем сами весь парсер.
В первом случае мы должны будем в проект затащить и саму библиотеку(со всеми функциями, даже неиспользуемыми) и все зависимости - например если совсем неиспользуемая в проекте, но присутствующая в библиотеке процедура чтения из zip-файла требует библиотеку для работы с zip, то ее придутся включить в проект. Это быстро(потому что мы не будем писать парсер и проверять его работу, а просто воспользуемся тем, что уже кто-то написал и проверил) и проще в поддержке - если функцию из библиотеки используют в 100 проектах шанс что кто-то наткнется на проблему и найдет ее решение выше, чем если процедуру используют только в 1 проекте.
Во втором случае кода будет меньше. Но придется самим писать и тестировать, а так же если будет ошибка - то искать ее решение тоже придется самим, без чужой помощи.
Так что да, тут или скорость разработки или размер приложения.
Также, кстати, на размеры влияют ресурсы, которые в приложение напихали - картинки для красивых кнопочек, всякие там фоны, вставки на время загрузки и прочая мишура, которая тоже весит, и порой порядком.
Но эту операцию нужно будет делать каждый раз при обновлении библиотеки, и это будет еще одной точкой отказа.
Угу, а потом в каком-нибудь хитровыкрученном пользовательском сценарии (который попросту не пришёл в голову разработчику) словить краш всего приложения. Запросто.
На C++ можно указать компилятору выбросить из бинаря весь неиспользуемый код библиотек или не включать в программу неиспользуемые функции из кода. И он таки это сделает. Так что если у тебя библиотека весит 5 мегабайт, а ты используешь оттуда пару функций, то и залетит тебе в приложуху пару килобайт всего.
Непонятно причём тут вообще программисты? Работодатель платит зарплату за новые фичи, причём KPI привязывается к скорости их выхода в релиз. Оптимизацию кода никто не оплачивает.



IT-юмор
7.2K поста53.2K подписчиков
Правила сообщества
Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору