This media is not supported in your browser
VIEW IN TELEGRAM
🤣3
КАК ПРАВИЛЬНО шКОДИТЬ, ЧТОБЫ ПРЕДКИ УЛЫБАЛИСЬ ТЕБЕ
Вот ты выучил язык программирования👅, начинаешь вливаться в комьюнити, а все вокруг только и говорят про какие-то паттерны и принципы программирования🧐 . Давайте разбираться.
📯 Паттерны
Например, часто возникает задача уведомления объекта🔔 об изменении в другом объекте. И мы не чешем репу🤔 , как изобрести такую штуку с сиденьем и двумя колесами , а пишем Observer 🔭 . Разумеется, немного подпилив под себя.
Есть еще Антипаттерны💩 (Монолит🗿 , например) – тест на вшивость, если узнал себя, то пишешь говно – и ненастоящие паттерны (Например, АбСтРаКтНаЯ фабрика🤮 ) – впариваемые инфоцыганами, чтобы сделать "ТОП-88 Паттернов проектирования". И есть еще GRASP, которые придумали древние шизы🍄 , и они должны быть утеряны в анналах истории🗿 ...
📯 Принципы
Их надо соблюдать, но не до конца🤫 , потому что части из разных наборов противоречат друг другу, иногда – части из одного набора противоречат друг другу, а, доведенные до крайности, некоторые принципы противоречат даже сами себе💊 ...
Стоит следовать им на крепкую четверку4️⃣ , не больше, а со временем они сами впитаются в голову🧠 .
❤️ – Подробный разбор паттернов
🔥 – Подробный разбор SOLID
Вот ты выучил язык программирования👅, начинаешь вливаться в комьюнити, а все вокруг только и говорят про какие-то паттерны и принципы программирования
Шаблон проектирования – повторяемая архитектурная конструкция для решения типовой проблемы.
Например, часто возникает задача уведомления объекта
В целом, это крепкие, дедами отполированные, сердитые решения💪 , годные и для твоей поделки на коленке, и для жирнющего энтерпрайза. Плюс, знание паттернов позволяет в двух словах объяснить довольно сложную систему взаимодействия объектов🗑 .
Есть еще Антипаттерны
Это заповеди, выбитые на скрижалях Всеотцами программирования😀 типа Боба Мартина. Самые популярные из них: SOLID🔗 , KISS💋, DRY👣 ...
Их надо соблюдать, но не до конца
Но, в остальном, это звучит как "не клади все яйца в одну корзину"👌 или "береженного Бог бережет"😇 – чисто житейская мудрость пращуров, добытая горьким опытом✝️ .
Стоит следовать им на крепкую четверку
❤️ – Подробный разбор паттернов
🔥 – Подробный разбор SOLID
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🔥3🤣3
Wild Russian GameDev Mentor
Video message
Господи, турки не умеют делать алкоголь...
Берите у них только Efes, как раз он везде есть. Что вино как будто водой разбавлено, что вместо шотов налили рвотное🤮
Берите у них только Efes, как раз он везде есть. Что вино как будто водой разбавлено, что вместо шотов налили рвотное🤮
🤮3🤣3
Forwarded from ICC - Международный комитет кринжа
This media is not supported in your browser
VIEW IN TELEGRAM
😭2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
🌭4🔥3
ОБОЗНАЧЕНИЯ КРУПНОЙ О (BIG O NOTATION)
Когда мы только начинаем вырастать над уровнем "написать Hello, world!"👋 , пора начинать задумываться над эффективностью алгоритмов🤔 . Но как ее оценить, если время выполнения зависит от многих факторов, не связанных с кодом: от компьютера, от параллельно запущенных программ, от использованного языка?🤔
Здесь нам на помощь🆘 приходит
📯 Нотация Big O
Простая проходка🚶♂️ по коллекции будет O(n), и рост времени тут в линейной зависимости от количества элементов в массиве (x2 элементов = x2 времени)📐 . А вот если засунуть эту проходку в еще один цикл, то будет уже O(n²). (Примеры на коде в описании). Это квадратичная функция🟥, это плохо, такого мы стараемся избегать.👎
📯 Как этим пользоваться
Так, O(2n - 1) легким движением руки🧙♀️ превращается в O(n). Вы можете возмутиться, мол, как же так, ведь два цикла - больше, чем один цикл😱 !!!
То есть, сравниватьжопу с пальцем смысла нет, уяснили🧠 ? Но что мы можем сравнить - так это то, что в обоих случаях при х2 данных будет х2 времени. Значит, по Big O два эти алгоритма одинаковые.🪞 Смиритесь.
📯 Зачем этим пользоваться?
То есть, теперь у нас появилась линейка, которой мы можем померить кривизну рук разработчика, очень удобно👍
😱 – У меня от пляжных кружочков до сих пор на лице Big O
🤓 – Да кому нужны эти метрики, если и так сойдет?)))
За примерами на коде в комменты⬇️
Когда мы только начинаем вырастать над уровнем "написать Hello, world!"
Здесь нам на помощь
– способ измерения эффективности алгоритма с циклом или рекурсией🔁, привязанный только к количеству входных данных🔠. Применяется она к двум параметрам: времени и памяти.
Простая проходка
Таким образом, Big O позволяет нам определить, насколько сильно наш алгоритм поперхнется😮💨, если мы всунем в него огромный поток ценных данных📊 . А это очень полезная информация, если мы планируем масштабировать систему🤯 .
Берем наш цикл и вытаскиваем из него количество итераций🔃. Обозначаем их как n. Затем избавляемся от всех констант🗑 .
Так, O(2n - 1) легким движением руки
А я вам скажу, что, если у вас два цикла отличаются от одного только количеством, то либо второй цикл ничего не делает, либо выпизпривираете🤥 . Ведь, чтобы получить тот же вывод, сама итерация изменилась🧠 .
То есть, сравнивать
С помощью Big O можно легко оценить, насколько алгоритм говно💩
Например, пузырьковая сортировка будет O(n²) – это в n раз хуже допустимого🤡
То есть, теперь у нас появилась линейка, которой мы можем померить кривизну рук разработчика, очень удобно
😱 – У меня от пляжных кружочков до сих пор на лице Big O
🤓 – Да кому нужны эти метрики, если и так сойдет?)))
За примерами на коде в комменты
Please open Telegram to view this post
VIEW IN TELEGRAM
😱3🔥1🥰1👌1🤓1
МЯГКИЕ СПОСОБНОСТИ (СОФТ СКИЛЛЫ)
📯 Программирование больше не тайное учение
Во-первых, порог входа пробил днище. Теперь не нужно дрючить байтики, а можно клепать No-Code говнище💩 , и все равно будет работать. И, что самое страшное, будет работать хорошо👍 . По крайней мере достаточно хорошо, чтобы брать за это деньги🤑 .
📯 Для чего тебе может понадобится говорить с людьми
Для того, чтобы сделать что-то качественное, тебе нужен художник, звукарь, программист, сценарист, гейм-дизайнер, тестировщик👨🎨 🎧 🧑💻 ✍️ 👎 ... Допустим, часть из этих ролей совмещается, но чем их больше в одном индюке🦃, тем хуже качество исполнения каждой. А уж если мы говорим, о чем-то большем, чем инди-поделка, то любой коллектив среднячков >> один гений🧙♀️ .
Навыки общения помогут тебе как договориться на более высокую зарплату, так и продать стартап толстосуму-инвестору🤑 .
📯 Ну вот я интроверт, не люблю общаться с людьми, что мне теперь делать?
Я тоже. А вот, работаю с людьми. Хотя лет шесть назад до слез боялся позвонить по телефону😭 . Кстати, это правда .
Да и никто не говорит, что надо любить общаться с людьми. Надо уметь👍 . Сомневаюсь, что есть люди, которые обожают ездить в автобусе или убирать квартиру. Может, найдутся любители платить налоги? Но это все мы терпим🫡 .
Если совсем никак, попробуйте обратиться к психологу💉 – эта темка реально многих захилила💊 .
_____________________________________
И выйди уже из комнаты,
Соверши уже,блять , ошибку!
Солнце не будет лишним,
Если ты куришь шибко.
_____________________________________
🪕 – Мама, пожалуйста, не надо крика!
Просто я хикка, просто я хикка...
😱 – ААААААА, ЖЕНЩИНА!!!!!!!
Давно прошло тозолотоевремя, когда программистами могли стать только суровые задроты🌧 🤓 в вонючих свитерах с оленями🦌 . Эпоха гениев, не тронутых женщиной, закончилась👁 .
Во-первых, порог входа пробил днище. Теперь не нужно дрючить байтики, а можно клепать No-Code говнище
Раньше, чтобы написать игру, тебе нужно было досконально знать устройство компьютера👩💻 , изобрести собственный движок, отрисовывать каждый кадр, а затем все это уместить в 12 бит памяти мощнейшего компьютера того времени🩴. И все это за респект, потому что компьютеры есть только в универах и в ЦУПе🛰. Разумеется, таким будут заниматься только отбросившие все человеческое👀 .
Во-первых, любое современное ПО делается в кооперации🫶 🫶 .
Для того, чтобы сделать что-то качественное, тебе нужен художник, звукарь, программист, сценарист, гейм-дизайнер, тестировщик
Во-вторых, тебе понадобится продавать себя и свои продукты💵 .
Навыки общения помогут тебе как договориться на более высокую зарплату, так и продать стартап толстосуму-инвестору
Представь, что ты супер-крутой мега-программист🌚 . Как об этом узнает весь мир, если ты двух слов связать не можешь🤔 ? То-то и оно...
Я тоже. А вот, работаю с людьми. Хотя лет шесть назад до слез боялся позвонить по телефону
Да и никто не говорит, что надо любить общаться с людьми. Надо уметь
Помните, что кринж мертв🤦♂️ , любой позор переживаем, и ничего катастрофического не будет, если вы скажете что-то не то🥴 .В рамках УК РФ, разумеется...
Если совсем никак, попробуйте обратиться к психологу
_____________________________________
И выйди уже из комнаты,
Соверши уже,
Солнце не будет лишним,
Если ты куришь шибко.
_____________________________________
Просто я хикка, просто я хикка...
😱 – ААААААА, ЖЕНЩИНА!!!!!!!
Please open Telegram to view this post
VIEW IN TELEGRAM
😱6 3❤2
SOLIDное программирование #1
Вы захотели принципов🤩 (так было решено здесь). А значит, теперь мы подробнее рассмотрим шесть самых попсовых правил, из-за которых все срутся в интернете👊 .
Оглавление:
S – Single Responsibility📍
O – Open-Closed
L – Liskov Substitution
I – Interface Segregation
D – Dependency Inversion
(Bonus) DRY – Don`t repeat yourself
📯 S – Single Responsibility Principle
На мой взгляд, самый ясный☀️ из принципов. По-простому, ответственность – это то, за что отвечает данный класс😱 . То есть, никаких побочных квестов, никаких дополнительных функций у класса не должно быть, кроме его главного предназначения⚔️ .
📯 Зачем?
Во-первых, тогда Ось изменений🔄 – линия, пронзающая 🏹 все классы, которые придется затронуть при необходимости некоторых изменений (в том числе, исправлений ❤️🩹 ) – будет затрагивать неSRP-класс в меньшем количестве случаев↘️ . А, помятуя о священном правиле "Работает – не трогай😇 ", мы хотим, чтобы эта Ось затрагивала как можно меньше классов.
Во-вторых, если нам понадобится сделать Радио📻 без Часов⏰ , мы сможем поступить в соответствии с DRY – взять тот же класс Радио📻, а не писать новый, и не использовать Радио С Часами📻⏰ , игнорируя половину его функционала.
📯 Окей, тогда отдельный класс под каждый метод – не прогадаешь?
Это значит, что мы не размазываем ответственность по всему коду, а концентрируем ее в одном классе👍 .
_____________________________________
🪕 – Про ответственность я знаю только, то как ее перекладывать😁
🔥 – Поскорее бы вторую часть🤤🤤🤤
Вы захотели принципов
Оглавление:
S – Single Responsibility
O – Open-Closed
L – Liskov Substitution
I – Interface Segregation
D – Dependency Inversion
(Bonus) DRY – Don`t repeat yourself
– каждый объект должен иметь одну ответственность☝️ , и эта ответственность должна быть полностью инкапсулирована в класс📦. Я дальше буду говорить про классы, но то же самое относится и к методам✅ .
На мой взгляд, самый ясный
Пример:
Вот у нас есть радио с часами📻⏰ . Неправильно будет запихнуть обе этих ответственности в один класс. А нужно либо класс Часы⏰ положить в класс Радио📻, либо создать два равноважных класса.
Во-первых, тогда Ось изменений
Во-вторых, если нам понадобится сделать Радио📻 без Часов
Так же, как мы ограничили максимальное🤚 число ответственностей на класс, мы также должны ограничить максимальное число классов на ответственность🤤 .
Это значит, что мы не размазываем ответственность по всему коду, а концентрируем ее в одном классе
Пример:
Вот у нас есть Отчет📎 . Будем ли мы хранить в разных классах его заголовок, комментарий и данные🫠 ?Нет (вдруг правда не знаете 🤷♀️ ).
_____________________________________
Напоследок, подсказка💡 : если вам хочется в названии класса поставить With/And – это звоночек📞
🔥 – Поскорее бы вторую часть🤤🤤🤤
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Ура, товарищи!!!!🎉 🎉
Сегодня на стриме я смог заставить кого-то чему-то научиться!!!🧠 🤓
Хоть и пришлось упростить систему до 1.5 нейронов, зато работает же!🤓
Это значит, что мои попытки вкатиться в нейросети не безнадежны✅
Через недельку будем писать красивый вывод в инспекторе, а завтра утром напишу, что произошло за ночь.
Сегодня на стриме я смог заставить кого-то чему-то научиться!!!
Хоть и пришлось упростить систему до 1.5 нейронов, зато работает же!
Это значит, что мои попытки вкатиться в нейросети не безнадежны
Через недельку будем писать красивый вывод в инспекторе, а завтра утром напишу, что произошло за ночь.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉5 2🔥1