Реальный Код
«Что будет проще для понимания условного гуманитария: js или питон?» ⏬⏬⏬ #вопросОтвет #расскажуЗаМинуту #python #js #вкатывание
This media is not supported in your browser
VIEW IN TELEGRAM
👍3
«Есть ли какие то симуляторы тестировки? Чтобы практиковаться»
https://django-todo.org
⏬⏬⏬
#вопросОтвет #расскажуЗаМинуту #тестирование
https://django-todo.org
⏬⏬⏬
#вопросОтвет #расскажуЗаМинуту #тестирование
👍3👎1🤔1
Реальный Код
«Есть ли какие то симуляторы тестировки? Чтобы практиковаться» https://django-todo.org ⏬⏬⏬ #вопросОтвет #расскажуЗаМинуту #тестирование
This media is not supported in your browser
VIEW IN TELEGRAM
👍2
‼️ Знак ‼️
Кстати, если ты ждал какой-то знак, чтобы начать заниматься программированием или тестированием – то вот он⚡️
Начни прямо сегодня!
- скачай питон
- начни писать что-то
- начни писать в файлике простенькую HTML-страничку
- напиши тест-кейсы для какого-то простого сайта
- полистай книжку по программированию
- поищи тут короткие ролики для вдохновения, что можно сделать простого
У тебя получится ✊
#мотивация #главноеНачать #вкатывание
Кстати, если ты ждал какой-то знак, чтобы начать заниматься программированием или тестированием – то вот он
Начни прямо сегодня!
- скачай питон
- начни писать что-то
- начни писать в файлике простенькую HTML-страничку
- напиши тест-кейсы для какого-то простого сайта
- полистай книжку по программированию
- поищи тут короткие ролики для вдохновения, что можно сделать простого
У тебя получится ✊
#мотивация #главноеНачать #вкатывание
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👎1🤔1
А вот зацените, какие нелепые баги бывают в достаточно матерых продуктах, которыми пользуются тысячи людей (36К звезд на ГитХабе)
То есть в коде количество суток вычислялось не делением на 24, а умножением. После чего это значение использовалось для понимания, пора удалять логи или нет
Надо ли говорить, что условие почти всегда выполнялось…
🤪
Вот ссылка на тикет https://github.com/pocketbase/pocketbase/pull/5179
#чеБывает #забавное #баги #gitHub
То есть в коде количество суток вычислялось не делением на 24, а умножением. После чего это значение использовалось для понимания, пора удалять логи или нет
Надо ли говорить, что условие почти всегда выполнялось…
🤪
Вот ссылка на тикет https://github.com/pocketbase/pocketbase/pull/5179
#чеБывает #забавное #баги #gitHub
👍2🤔2👎1
Ребят, есть желание сделать видос с разбором куска кода.
Какой язык хотели бы увидеть в разборе?
Какой язык хотели бы увидеть в разборе?
Anonymous Poll
11%
C/C++
78%
Python
33%
Go
0%
JavaScript/TypeScript
11%
HTML/CSS
👍2🤔2👎1
Исходники MS-DOS
А вот любопытное – Microsoft выложила исходники ДОСа на ГитХаб 🙂
https://github.com/microsoft/MS-DOS
#msDos #gitHub #любопытно #исходники
А вот любопытное – Microsoft выложила исходники ДОСа на ГитХаб 🙂
https://github.com/microsoft/MS-DOS
#msDos #gitHub #любопытно #исходники
GitHub
GitHub - microsoft/MS-DOS: The original sources of MS-DOS 1.25, 2.0, and 4.0 for reference purposes
The original sources of MS-DOS 1.25, 2.0, and 4.0 for reference purposes - microsoft/MS-DOS
🤔2👍1👎1
Очень хороший текст про так называемый искусственный интеллект и пиар/хайп вокруг него. Прям очень точно описано. Советую почитать, чтобы избавиться от иллюзий и создаваемого вокруг ИИ/ML/AI/ChatGPT флёра всезнайки и всемогуча, знающего все и способного решить все проблемы
#искусственныйИнтеллект #статья #полезно
#искусственныйИнтеллект #статья #полезно
👍1👎1🤔1
Forwarded from Точка сборки
Искусственного интеллекта не существует.
Точнее, существует такой бренд, темка, которую активно форсят уж больше 10 лет (но были заходы и ранее). Но то, что сегодня пытаются впарить под этим брендом — интеллектом не является. С таким же успехом можно называть искусственным интеллектом 1С-Бухгалтерию или Яндекс.Навигатор.
Постараюсь объяснить на пальцах, что понимается под машинным обучением и нейросетями.
Это алгоритм. Как и любой алгоритм, он справляется (худо-бедно) с каким-то классом задач, но по определению не может решить ЛЮБУЮ задачу. Нейросеть — это результат статистической обработки большого массива данных, называемого обучающей выборкой. И вся её "интеллектуальность" на самом деле сводится к тому, чтобы при получении каких-то входных данных выплюнуть результат, который сохранился при обучении на тех конкретных данных.
Грубо, нейронке дали на вход тысячи разных фото с котиками, и сказали — это котик. Потом дали ещё столько же фоток собакенов — это собакен. В нейронах отпечатались числовые коэффициенты (веса) и можно теперь на вход подавать какую-то новую фотку и ожидать на выходе что-то вроде "это 34% котик и 18% собак". Я намеренно не буду углубляться в особенности алгоритмов и разные способы сделать их "умнее". Важен принцип: нейросети — это алгоритм для распознавания паттернов, образов. Там нет интеллектуальной деятельности от слова совсем.
Распознавать фоточки и текст, имитировать диалог, переводить, рисовать однотипные картинки по текстовому запросу, предлагать код в редакторе, чистить звук от шума, подсвечивать новобразования в снимках МРТ — да. Но думать — нет, сорри.
Также как сортировка пузырьком сортирует массивы данных, но не может играть в шахматы или строить маршрут.
Как и у любого алгоритма, у нейросетей есть свои минусы и ограничения. Первое, что вытекает из определения — это обучающая выборка. Она должна быть очень большой, очень полной и очень достоверной. Если мы дали всего по 100 фоток котиков и собак, точность распознавания будет никакая. Если мы не додали фоток мышей, то грызуны будут распознаваться котопсами. Если мы взяли в качестве источника википедию, то итоговая нейронка будет с явно перекошенными политическими убеждениями.
Самое прикольное, что исправить "убеждения" нейронки очень сложно, т.к. она представляет собой не структурированную библиотеку с человеко-читабельными записями, а просто кучу цифр и какая там цифра за что отвечает — невозможно определить. Это приводит к смешным (и обидным) казусам, типа того как Google Photos распознавали негров как обезьян, и к вынужденному обкладыванию костылями поверх выданных результатов вроде исправления 6+пальцевых персонажей или ручной цензуры — про Путина не говорить, порнуху не рисовать. В общем, если в обучающую выборку когда-то попали кривые данные, то выковырять их оттуда никак не получится — проще обучить заново.
На этом страдания разработчиков не заканчиваются: выбор параметров и структуры нейросети — штука нетривиальная и делается методом проб и ошибок с подключением интуиции (т.к. у этой задачи нет правильного ответа). Сколько у нейронки входов/выходов, глубина и прочее — всё это определяется разработчиком и, соответственно, тоже может быть зафакаплено.
Нейросети очень долго и дорого обучать — требуется много процессорной мощи и электроэнергии. А ещё их очень сложно "дообучивать" в реальном времени на новых данных: новости должны просочиться в нейрончики, и как-то скорректировать веса связей, обученных ранее (см. выше про исправление убеждений).
В общем, конечным пользователям всегда стоит задаваться вопросами:
- На каких данных обучалась нейронка?
- Кто эти данные предоставил и можно ли ему доверять?
- Являются ли данные достоверными и актуальными?
- Как мы можем убедиться в том, что ничего левого в нейронку не попало (спойлер: никак)?
Текст получился большим, так что вопросы о том, заменит ли ИИ человека, почему нейросети внедряют во всё подряд, почему в это вливают огромные бабки, случится ли вот-вот качественный скачок, мы оставим до следующего раза.
Точнее, существует такой бренд, темка, которую активно форсят уж больше 10 лет (но были заходы и ранее). Но то, что сегодня пытаются впарить под этим брендом — интеллектом не является. С таким же успехом можно называть искусственным интеллектом 1С-Бухгалтерию или Яндекс.Навигатор.
Постараюсь объяснить на пальцах, что понимается под машинным обучением и нейросетями.
Это алгоритм. Как и любой алгоритм, он справляется (худо-бедно) с каким-то классом задач, но по определению не может решить ЛЮБУЮ задачу. Нейросеть — это результат статистической обработки большого массива данных, называемого обучающей выборкой. И вся её "интеллектуальность" на самом деле сводится к тому, чтобы при получении каких-то входных данных выплюнуть результат, который сохранился при обучении на тех конкретных данных.
Грубо, нейронке дали на вход тысячи разных фото с котиками, и сказали — это котик. Потом дали ещё столько же фоток собакенов — это собакен. В нейронах отпечатались числовые коэффициенты (веса) и можно теперь на вход подавать какую-то новую фотку и ожидать на выходе что-то вроде "это 34% котик и 18% собак". Я намеренно не буду углубляться в особенности алгоритмов и разные способы сделать их "умнее". Важен принцип: нейросети — это алгоритм для распознавания паттернов, образов. Там нет интеллектуальной деятельности от слова совсем.
Распознавать фоточки и текст, имитировать диалог, переводить, рисовать однотипные картинки по текстовому запросу, предлагать код в редакторе, чистить звук от шума, подсвечивать новобразования в снимках МРТ — да. Но думать — нет, сорри.
Также как сортировка пузырьком сортирует массивы данных, но не может играть в шахматы или строить маршрут.
Как и у любого алгоритма, у нейросетей есть свои минусы и ограничения. Первое, что вытекает из определения — это обучающая выборка. Она должна быть очень большой, очень полной и очень достоверной. Если мы дали всего по 100 фоток котиков и собак, точность распознавания будет никакая. Если мы не додали фоток мышей, то грызуны будут распознаваться котопсами. Если мы взяли в качестве источника википедию, то итоговая нейронка будет с явно перекошенными политическими убеждениями.
Самое прикольное, что исправить "убеждения" нейронки очень сложно, т.к. она представляет собой не структурированную библиотеку с человеко-читабельными записями, а просто кучу цифр и какая там цифра за что отвечает — невозможно определить. Это приводит к смешным (и обидным) казусам, типа того как Google Photos распознавали негров как обезьян, и к вынужденному обкладыванию костылями поверх выданных результатов вроде исправления 6+пальцевых персонажей или ручной цензуры — про Путина не говорить, порнуху не рисовать. В общем, если в обучающую выборку когда-то попали кривые данные, то выковырять их оттуда никак не получится — проще обучить заново.
На этом страдания разработчиков не заканчиваются: выбор параметров и структуры нейросети — штука нетривиальная и делается методом проб и ошибок с подключением интуиции (т.к. у этой задачи нет правильного ответа). Сколько у нейронки входов/выходов, глубина и прочее — всё это определяется разработчиком и, соответственно, тоже может быть зафакаплено.
Нейросети очень долго и дорого обучать — требуется много процессорной мощи и электроэнергии. А ещё их очень сложно "дообучивать" в реальном времени на новых данных: новости должны просочиться в нейрончики, и как-то скорректировать веса связей, обученных ранее (см. выше про исправление убеждений).
В общем, конечным пользователям всегда стоит задаваться вопросами:
- На каких данных обучалась нейронка?
- Кто эти данные предоставил и можно ли ему доверять?
- Являются ли данные достоверными и актуальными?
- Как мы можем убедиться в том, что ничего левого в нейронку не попало (спойлер: никак)?
Текст получился большим, так что вопросы о том, заменит ли ИИ человека, почему нейросети внедряют во всё подряд, почему в это вливают огромные бабки, случится ли вот-вот качественный скачок, мы оставим до следующего раза.
👍3
P.S. кстати, теоретическая база ИИ была заложена еще в 60-х годах, однако тогда еще не было достаточных вычислительных мощностей, чтобы реализовать это на практике
Я там дропнул новый релиз моей утилитки для генерации красивых плашек для ГитХаба с вашей статистикой по языкам
https://github.com/DiPaolo/git-stats-plate-gen/releases/tag/v2.1.0
Пробуйте, отписывайте баги, пожелания, похвальбы
#git #news #release
https://github.com/DiPaolo/git-stats-plate-gen/releases/tag/v2.1.0
Пробуйте, отписывайте баги, пожелания, похвальбы
#git #news #release
GitHub
Release Release v2.1.0 · DiPaolo/git-stats-plate-gen
Major Changes
improvements
significant speed improvement by using parallelization (20 repos are processed at a time for now) [#20]
improvements
significant speed improvement by using parallelization (20 repos are processed at a time for now) [#20]
👍3👎1🤔1
спешу поделиться с вами радостью!
в совсем недавно вышедший питон 3.13 вошел мой фикс 😃 ууууууррррааааааа 🥳 несказанно счастлив и горжусь 💪
бага была зарепорчена мною еще года три назад, и пофикшена тогда же:
argparse incorrectly shows help string on a new line in case of long command string (https://github.com/python/cpython/issues/87041)
а вот и сам фикс: https://github.com/python/cpython/commit/8d3a0fecbe2edb69cf66db82f1c59601aac94651
так что вот, приложил свою руку 😎☺️
#python
в совсем недавно вышедший питон 3.13 вошел мой фикс 😃 ууууууррррааааааа 🥳 несказанно счастлив и горжусь 💪
бага была зарепорчена мною еще года три назад, и пофикшена тогда же:
argparse incorrectly shows help string on a new line in case of long command string (https://github.com/python/cpython/issues/87041)
а вот и сам фикс: https://github.com/python/cpython/commit/8d3a0fecbe2edb69cf66db82f1c59601aac94651
так что вот, приложил свою руку 😎☺️
#python
GitHub
argparse incorrectly shows help string on a new line in case of long command string · Issue #87041 · python/cpython
BPO 42875 Nosy @rhettinger, @DiPaolo PRs #24177 Files argparse-indent-sample.py Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state...
🔥3👍2👎2❤1👏1🤔1🤓1
что же касается самого релиза, то я для себя отметил следующее:
- PEP 703 – Making the Global Interpreter Lock Optional in CPython (https://peps.python.org/pep-0703/)
- вместо него есть штука Free-threaded CPython (https://docs.python.org/3/whatsnew/3.13.html#free-threaded-cpython)
- A better interactive interpreter (https://docs.python.org/3/whatsnew/3.13.html#whatsnew313-better-interactive-interpreter)
- PEP 730 – Adding iOS as a supported platform (https://peps.python.org/pep-0730/)
- PEP 738 – Adding Android as a supported platform (https://peps.python.org/pep-0738/)
полный список фич и обновлений тут https://www.python.org/downloads/release/python-3130/
🐍
#python #release
- PEP 703 – Making the Global Interpreter Lock Optional in CPython (https://peps.python.org/pep-0703/)
- вместо него есть штука Free-threaded CPython (https://docs.python.org/3/whatsnew/3.13.html#free-threaded-cpython)
- A better interactive interpreter (https://docs.python.org/3/whatsnew/3.13.html#whatsnew313-better-interactive-interpreter)
- PEP 730 – Adding iOS as a supported platform (https://peps.python.org/pep-0730/)
- PEP 738 – Adding Android as a supported platform (https://peps.python.org/pep-0738/)
полный список фич и обновлений тут https://www.python.org/downloads/release/python-3130/
🐍
#python #release
👍5👎2🤔2
Forwarded from Yandex Infrastructure
Не бойся! Я всего лишь баг на проде, обнаруженный в пятницу вечером. Давай смотреть друг на друга до тех пор, пока меня не заметят все остальные 💀🔥
😁4🫡4😱2
как ускорить своего бота в 10x раз 🚀
сегодня покажу одну маленькую вещь, которая может значительно ускорить вашу систему. Эта вещь – кэширование. Кэширование активно применяется на всех уровнях: от кэша процессора L1/L2/L3 и до кэширующих баз данных типа Redis
вкратце, суть такова: если есть сложные вычисления либо доступ к данным занимает длительное время, и данные какое-то время будут актуальны – можно их сохранить «поближе» к себе в более скоростном месте
например, доступ к оперативной памяти значительно быстрее доступа к диску, а доступ к диску значительно быстрее, чем получить данные по сети
надеюсь, тут все понятно. теперь к мааааааааленькому одному конкретному примеру, как я это сделал на практике
есть у меня бот, который показывает погоду в нескольких городах. Погоду он берет с некоторого погодного АПИ. На каждый город (допустим их 4) нужно сходить с запросом к серверу
но мы понимаем, что в течение часа погода сильно не изменится. Потому я решаю е ходить в течение часа за погодой в том же регионе, а сохранить ее у себя. ВАЖНО я бы не мог сделать такое допущение, если бы это был сервис предупреждения о бурях и другой непогоде где-нибудь в горах. Мой бот позволяет мне пренебречь этим и показывать «старую» погода в пределах часа
в Питоне есть встроенный удобные декоратор – @lru_cache (https://docs.python.org/3/library/functools.html). Однако в нем нету TTL (time to live – то есть сколько наши данные не будут «протухшими» по времени)
чтобы не городить огород самому с этим TTL вокруг стандартной функции, я легко нашел и воспользовался библиотеку с такой функциональностью – https://pypi.org/project/cachetools/
вот что получилось:
теперь, сделав запрос один раз, декоратор у себя в мапяти(!) сохранят значение (да-да! прямо JSON). И в следующий раз приобращении к этой функции с теми же аргументами, не будет выполнять код функции, а вместо этого вернет уже готовый результат. При этом, чере час он очистит кэш для этих входных аргументов функции, чтобы снова сходить на сервер по АПИ и получить актуальную погоду
вот результат – 10x в скорости ответа. А это значит, что мои пользователи увидят ответ значительно быстрее 😀
вот запрос первый раз (некэшированные данные)
после этого запроса они закэшировались, и то же обращение за погодой отрабатывает уже в 10 раз быстрее!
и так происходит в течение часа (обратите внимание на время):
по истечению же часа мы вновь тратим чуть больше времени, чтобы обновить данные и снова записать их в кэш:
после чего – опять быстро выдаем ответ пользователю:
вот такие дела… на все про все – 15 минут и 10x быстрее работа бота 😎
#python #cache #ускоряем #боты
сегодня покажу одну маленькую вещь, которая может значительно ускорить вашу систему. Эта вещь – кэширование. Кэширование активно применяется на всех уровнях: от кэша процессора L1/L2/L3 и до кэширующих баз данных типа Redis
вкратце, суть такова: если есть сложные вычисления либо доступ к данным занимает длительное время, и данные какое-то время будут актуальны – можно их сохранить «поближе» к себе в более скоростном месте
например, доступ к оперативной памяти значительно быстрее доступа к диску, а доступ к диску значительно быстрее, чем получить данные по сети
надеюсь, тут все понятно. теперь к мааааааааленькому одному конкретному примеру, как я это сделал на практике
есть у меня бот, который показывает погоду в нескольких городах. Погоду он берет с некоторого погодного АПИ. На каждый город (допустим их 4) нужно сходить с запросом к серверу
но мы понимаем, что в течение часа погода сильно не изменится. Потому я решаю е ходить в течение часа за погодой в том же регионе, а сохранить ее у себя. ВАЖНО я бы не мог сделать такое допущение, если бы это был сервис предупреждения о бурях и другой непогоде где-нибудь в горах. Мой бот позволяет мне пренебречь этим и показывать «старую» погода в пределах часа
в Питоне есть встроенный удобные декоратор – @lru_cache (https://docs.python.org/3/library/functools.html). Однако в нем нету TTL (time to live – то есть сколько наши данные не будут «протухшими» по времени)
чтобы не городить огород самому с этим TTL вокруг стандартной функции, я легко нашел и воспользовался библиотеку с такой функциональностью – https://pypi.org/project/cachetools/
вот что получилось:
@cached(cache=TTLCache(maxsize=512, ttl=60*60))
def get_weather_at_location(latitude, longitude):
ret = requests.get(
f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}"
f"&hourly=temperature_2m,weather_code,wind_speed_10m&wind_speed_unit=ms¤t_weather=true&timezone=Asia%2FNovosibirsk")
return ret.json()
теперь, сделав запрос один раз, декоратор у себя в мапяти(!) сохранят значение (да-да! прямо JSON). И в следующий раз приобращении к этой функции с теми же аргументами, не будет выполнять код функции, а вместо этого вернет уже готовый результат. При этом, чере час он очистит кэш для этих входных аргументов функции, чтобы снова сходить на сервер по АПИ и получить актуальную погоду
вот результат – 10x в скорости ответа. А это значит, что мои пользователи увидят ответ значительно быстрее 😀
вот запрос первый раз (некэшированные данные)
2024-11-04 13:57:58,786 - root - INFO - request stats (chat_id=218988127, message_id=121, time_sec=1.85)
после этого запроса они закэшировались, и то же обращение за погодой отрабатывает уже в 10 раз быстрее!
2024-11-04 13:58:02,425 - root - INFO - request stats (chat_id=218988127, message_id=123, time_sec=0.17)
и так происходит в течение часа (обратите внимание на время):
2024-11-04 14:18:35,425 - root - INFO - request stats (chat_id=218988127, message_id=133, time_sec=0.139)
по истечению же часа мы вновь тратим чуть больше времени, чтобы обновить данные и снова записать их в кэш:
2024-11-04 15:10:33,043 - root - INFO - request stats (chat_id=218988127, message_id=137, time_sec=1.89)
после чего – опять быстро выдаем ответ пользователю:
2024-11-04 15:10:36,277 - root - INFO - request stats (chat_id=218988127, message_id=139, time_sec=0.215)
вот такие дела… на все про все – 15 минут и 10x быстрее работа бота 😎
#python #cache #ускоряем #боты
👍3👎2🔥2🤔1🤓1
Реальный Код
Формат времени и даты Сегодня расскажу вам о стандарте представления времени и дат, который часто используется в разработке. Стандарт этот именуется ISO 8601. Почему важно знать о нем? Потому что он часто используется при разработке ПО: хранение логов, передача…
храните даты в UTC формате
хочу сегодня апнуть тему про формат дат и дать совет из заголовка
общее правило такое: данные хранятся в общепринятом стандартном формате (вообще все данные в-принципе, и даты, в частности) и переводите их в специфичный для пользователя формат на стороне клиента (мобильное приложение, фронтенд, телеграм-бот, десктоп-приложение)
то есть, еще раз: в базе лежат даты в ISO формате и только в UTC, никаких специфичных +3/+7 и прочее…
то же самое касается логов – только в UTC
объяснение простое:
* клиенты пирложения/системы могут находиться в разных часовых поясах
* пользователь может перемещаться по миру и вносить данные в приложение из разных часовых поясов
* распределенная система может иметь сервера (которые пишут в базу и в логи), которые находятся в разных территориальных локациях
во всех этих случаях, если не придерживаться правила из заголовка, в базе/логах/проектных файлах и т.д. может случиться мешанина… а оно вам надо? 😁
когда-нибудь скажете мне спасибо за этот совет 😉
#совет #дата #логи
хочу сегодня апнуть тему про формат дат и дать совет из заголовка
общее правило такое: данные хранятся в общепринятом стандартном формате (вообще все данные в-принципе, и даты, в частности) и переводите их в специфичный для пользователя формат на стороне клиента (мобильное приложение, фронтенд, телеграм-бот, десктоп-приложение)
то есть, еще раз: в базе лежат даты в ISO формате и только в UTC, никаких специфичных +3/+7 и прочее…
то же самое касается логов – только в UTC
объяснение простое:
* клиенты пирложения/системы могут находиться в разных часовых поясах
* пользователь может перемещаться по миру и вносить данные в приложение из разных часовых поясов
* распределенная система может иметь сервера (которые пишут в базу и в логи), которые находятся в разных территориальных локациях
во всех этих случаях, если не придерживаться правила из заголовка, в базе/логах/проектных файлах и т.д. может случиться мешанина… а оно вам надо? 😁
когда-нибудь скажете мне спасибо за этот совет 😉
#совет #дата #логи
👍5👎2🤔1🙏1
просьба
коллеги… товарищи… друзья… вкатуны и просто сочувствующие 🤗
я вот начал чуть-по-чуть опять писать сюда… и грустно видеть всего 13 подписчиков 🥺
поделитесь, пожалуйста, канальчиком с теми, кому это может быть интересно, полезно, ну или кому просто нечего делать 🤭
мне будет приятно и чуть больше мотивировать писать сюда чаще
ну и кстати, не стесняйтесь писать свои вопросы в коментах. есть вопрос у вас – он всяко может интересовать и других
#просьба
коллеги… товарищи… друзья… вкатуны и просто сочувствующие 🤗
я вот начал чуть-по-чуть опять писать сюда… и грустно видеть всего 13 подписчиков 🥺
поделитесь, пожалуйста, канальчиком с теми, кому это может быть интересно, полезно, ну или кому просто нечего делать 🤭
мне будет приятно и чуть больше мотивировать писать сюда чаще
ну и кстати, не стесняйтесь писать свои вопросы в коментах. есть вопрос у вас – он всяко может интересовать и других
#просьба
👍7🤔2👎1
накину про чистый код 😈
держите свои пуканы 🔥🔥🔥
попалась мне тут статья и видос чувака, который раскидывает, что чистый код-то чистый, но перформанс у него – как будто на 15 лет назад откинули по железу
вот статья на английском. там же есть ссылка на YouTube
https://www.computerenhance.com/p/clean-code-horrible-performance
свое мнение озвучивать не буду 😆 может как-нибудь потом отдельным постом
#холивар #чистыйКод #ссылки
держите свои пуканы 🔥🔥🔥
попалась мне тут статья и видос чувака, который раскидывает, что чистый код-то чистый, но перформанс у него – как будто на 15 лет назад откинули по железу
вот статья на английском. там же есть ссылка на YouTube
https://www.computerenhance.com/p/clean-code-horrible-performance
свое мнение озвучивать не буду 😆 может как-нибудь потом отдельным постом
#холивар #чистыйКод #ссылки
Computerenhance
"Clean" Code, Horrible Performance
Many programming "best practices" taught today are performance disasters waiting to happen.
🔥3🤓3😈2
Не первый раз попадается вакансия, в которой указывается подход к документации как Docs as a Code (DAAC, получается 😄).
Так вот, это именно тот подход, что я интуитивно пропагандирую и внедряю последние лет 7-8.
Ведь это очевидно (ну для меня по-крайней мере), что дока должна:
// лежать рядом с кодом, чтобы соответствовать и отражать изменения в коде (добавил фичу в фиче-бранче – обновил доку)
// быть в виде .md-файла, чтобы его легко было менять и трекать изменения
// собираться как часть продукта, например, генерации pdf как офлайн часть + встраиваться в продукт во время сборки для онлайн формата
// тестироваться ровно также, как и остальные части продукта
// скриншоты должны автоматически генериться также на этапе сборки продукта, чтобы отражать его актуальную часть (+закрываем вопрос автоматизации создания и унификации скриншотов)
#документация #daac
Так вот, это именно тот подход, что я интуитивно пропагандирую и внедряю последние лет 7-8.
Ведь это очевидно (ну для меня по-крайней мере), что дока должна:
// лежать рядом с кодом, чтобы соответствовать и отражать изменения в коде (добавил фичу в фиче-бранче – обновил доку)
// быть в виде .md-файла, чтобы его легко было менять и трекать изменения
// собираться как часть продукта, например, генерации pdf как офлайн часть + встраиваться в продукт во время сборки для онлайн формата
// тестироваться ровно также, как и остальные части продукта
// скриншоты должны автоматически генериться также на этапе сборки продукта, чтобы отражать его актуальную часть (+закрываем вопрос автоматизации создания и унификации скриншотов)
#документация #daac
🔥3👍1💯1