Я бы не стал мешать JS и .NET.
В JS очень велики накладные расходы от включения в код неиспользуемых функций на стороне клиента, тогда как в Java и .NET я не вижу проблемы включения в зависимости довольно большой сборки с точки зрения производительности.
Впрочем, чужие библиотеки я тоже стараюсь использовать как можно реже, а если и использую, то просто включая их код в свой проект, а не создавая зависимость.
Из последних извращений:
Потратил 2.5 дня на попытку подключить C++ MySQL адаптер и заставить его работать без глюков. Успеха не добился.
Потратил 1.5 дня на написание собственного адаптера на C++, используя документацию с описанием сетевого протокола.
Потом ещё пару дней на перевод написанного на C# с полной асинхронной реализацией написанного кода.
Допиливание сторонней библиотеки, реализующей LinqToMySql, для использования с асинхронным кодом.
Резюме: микромодули помогают избавиться от включения неиспользуемого кода в JavaScript, тем самым уменьшив размер файла. Но иногда это может привести к проблемам.
Есть люди, которые занимаются написанием, вылизыванием и поддержкой стандартных библиотек. Это их основная задача. Их код можно и нужно использовать.
А когда дело касается модулей, которые представляют из себя точно такие же самописные велосипеды, только выложенные в репозиторий, в качестве кода возникают сомнения. Но всегда находятся программисты, которые считают, что пусть и плохой, но выложенный в репозиторий код — это благо.
Автор модуля пулл-реквест может не принять или принять не сразу, а изменения нужно внести прямо сейчас, что делать?
Проблема в том, что миллионам разработчиков придётся переправлять зависимости на новый форк.
Предполагаю, что оба дома были полуразрушены ураганом, поэтому сработал фактор «ага, дом есть, разрушения есть — значит, его и надо ломать».
Посмотрел сейчас на свой дом на гугле. Оказалось не менее весело: на дом хаотично набросаны вторым слоем ранее находившиеся там дома, а от соседнего дома есть только его номер без контура самого дома. Нет, не доедут до моего дома по гуглонавигатору.
А делов-то: нужно всего-навсего написать программу, которая будет выбрасывать неиспользуемый код, как это делают линкеры компилируемых языков.
Но, боюсь, для JS это будет совсем нереально из-за особенностей саомго языка.
Я бы не был настолько уверен насчёт качества тестов. Программист написал какие-то тесты и забыл. А миллионы программистов смотрят на модуль: код есть, тесты есть, можно пользоваться.
Именно так. Приведённая функция leftpad крайне неоптимальна: она имеет сложность O(N^2). Но на это обратили внимание только сейчас, когда поднялась шумиха: github.com/azer/left-pad/issues/15
То есть автор написал функцию для своих нужд. Возможно, ему требовалось быстрое и надёжное решение для строк небольшой длины, а оптимизацию для длинных строк он решил оставить на потом, о чём благополучно забыл. А другие взяли и стали его функцию использовать, не особо вникая в то, как эта функция работает.
При 14-16 градусах в детской влажность составляет обычно около 60% даже когда за окном лютый минус. А вот летом при 25 градусах и выше уровень влажности часто ниже 40% опускается.
К сожалению, большинство подобных решений предназначены для больших помещений. В случае небольших квартир всё становится сильно сложнее, начиная от отсутствия хорошего выбора решений и заканчивая техническими трудностями. Одна из таких трудностей — размещение воздуховодов, ещё и с нахлёстом по вертикали. Другая — вытяжка может быть сделана только в общую вентшахту (нельзя выбрасывать воздух рядом с воздухозаборником). Третья — размещение приточной установки, рекуператора в пределах квартиры. И т.д.
Такие лампы в большинстве своём нужно искать в специализованных магазинах, т.к. они относятся к категории не бытовых, а офисных и промышленных. Сегодня как раз купил в кабинет подобные лампы, скоро оценю их в действии (5 ламп 650 лм на 7 м2).
Интересно, почему возможность горячей замены аккумулятора в телефоне пока не получила особого распространения. У меня в ноутбуке пятилетнего возраста две батареи, из которых одновременно используется (заряжается или разряжается) только одна. Помимо огромной ёмкости (3.5 часа штатная + 6.5 дополнительная при прогинге или просмотре фильмов), я могу при работающем ноуте отцепить внешнюю батарею и поставить её на зарядку. И это очень удобно.
Сам использую Highscreen Boost 2 SE (он же Innos D10, как уже писали). И мне не нравится то, что:
1. Телефон надо иногда ставить на зарядку.
2. Нельзя поменять аккумулятор без отключения телефона.
Так что когда он сломается — буду искать не просто телефон с большим аккумулятором, а с модульным.
В JS очень велики накладные расходы от включения в код неиспользуемых функций на стороне клиента, тогда как в Java и .NET я не вижу проблемы включения в зависимости довольно большой сборки с точки зрения производительности.
Впрочем, чужие библиотеки я тоже стараюсь использовать как можно реже, а если и использую, то просто включая их код в свой проект, а не создавая зависимость.
Из последних извращений:
А когда дело касается модулей, которые представляют из себя точно такие же самописные велосипеды, только выложенные в репозиторий, в качестве кода возникают сомнения. Но всегда находятся программисты, которые считают, что пусть и плохой, но выложенный в репозиторий код — это благо.
Посмотрел сейчас на свой дом на гугле. Оказалось не менее весело: на дом хаотично набросаны вторым слоем ранее находившиеся там дома, а от соседнего дома есть только его номер без контура самого дома. Нет, не доедут до моего дома по гуглонавигатору.
Но, боюсь, для JS это будет совсем нереально из-за особенностей саомго языка.
github.com/azer/left-pad/issues/15
То есть автор написал функцию для своих нужд. Возможно, ему требовалось быстрое и надёжное решение для строк небольшой длины, а оптимизацию для длинных строк он решил оставить на потом, о чём благополучно забыл. А другие взяли и стали его функцию использовать, не особо вникая в то, как эта функция работает.
Сам использую Highscreen Boost 2 SE (он же Innos D10, как уже писали). И мне не нравится то, что:
1. Телефон надо иногда ставить на зарядку.
2. Нельзя поменять аккумулятор без отключения телефона.
Так что когда он сломается — буду искать не просто телефон с большим аккумулятором, а с модульным.