Wild Russian GameDev Mentor
98 subscribers
116 photos
5 videos
60 links
Обучаю созданию игр на Unity и программированию на C#.

Запись на занятия – сообщения канала
Лайвкодинг/игры – twitch.tv/ko1ba5er
Бустануть канал – t.me/boost/WRGDM

Please, be patient, я не умею пользоваться отложкой.
Download Telegram
Wild Russian GameDev Mentor
ВАЙБ-КОДИНГ ИЛИ ПОЧЕМУ ИИ НЕ СДЕЛАЕТ ИГРУ МЕЧТЫ ЗА ВАС Когда-то давно я пояснял за уровни языков программирования и упомянул там, что т.н. Zero-coding0️⃣ – мертворожденное направление💀. И вот недавно всплыла💩 очередная вершина человеческой лени и жадности…
Помните пост про вайбкодинг🤔?
Теория теорией, но давайте на практике посмотрим, на что способен современный искусственный интеллект🤖: попробуем навайбкодить себе простую игру и посчитаем, сколько критических багов в ней окажется😂!
📱 Конечно, в прямом эфире на твиче 📱,
так что вы можете в этом поучаствовать!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥211
ОСЬ ИЗМЕНЕНИЙ (НА КОТОРОЙ Я ВЕРТЕЛ ВАШ SRP)

Во многих статьях я уже упоминал ее вскользь👀, пришло время поговорить подробнее об этом явлении💬.

📯Ось изменений

– это линия, проходящая через модуль/класс, когда его необходимо затронуть🫴 для внесении того или иного изменения.


Сами изменения могут быть любыми, от исправления багов🪲 до удаления старых🗑 или добавления новых фич🎇.

📯Зачем она нужна?

Если вкратце, то для измерения соответствия SRP📐, но и не только. Ведь если у нас через модуль проходит единственная ось изменений, то у нас есть единственная причина его менять – значит, он имеет только одну ответственность🧠.

На практике, кончено, такого никто добиваться не будет😂. Однако больше 2-3 осей на модуль свидетельствуют о том, что вам лучше встать на кухню, ведь вместо кода получается лапша🍜.


📯В смысле 2-3, написано же SINGLE responsibility?!

Понимаешь ли, дело в том, что всем немного насрать...
На самом деле, есть разница еще в размере класса🤏, а так же в связности этих изменений.

Первое просто: если модуль небольшой и позволяет держать его весь в голове одновременно🤔, можно пока что не думать о его разделении👌.
Второе говорит о вероятности затронуть две оси вместе👋. Например, когда мы меняем способ формирования данных👩‍💻, мы наверняка захотим изменить и их вывод🖼. В большинстве случаев.


Да, MVVM идет в жопу с таким подходом, однако.. а оно нам правда всегда нужно🤔? Как итог, я никогда не разделяю логику счета каких-то мелочей и их отрисовку🤟.

📯Не плодите классы

Давайте немного изменим определение:
Ось изменений – это линия, проходящая через модули/классы, которые необходимо затронуть🫴 для внесении того или иного изменения.


Таким образом, как шашлык на шампур🍢 мы насаживаем всех, кто касается нашего обновления🆕. И их тоже не должно быть слишком много. Иначе ты очень скоро запутаешься, что на чем завязано🧐, и сам утонешь в своем же болоте🐸.

🤡 – В моем коде нет лишних ответственностей, потому что я писал его безответственно😂.
👌 – В мой код не нужно вносить изменения, он и так идеален!
Please open Telegram to view this post
VIEW IN TELEGRAM
533💅2
КАК Я ПОБЕДИЛ БЕЛЫЙ ЛИСТ

Страх белого/чистого листа – распространенное явление. Это состояние, когда решил начать новый проект, но.. с чего начать-то🤔..?

📯Ножницы бьют бумагу

Суефа дает важную подсказку: лист надо разрезать✂️. Иначе говоря, слона надо есть по частям🐘. В общем, разбей задачу на подзадачи, эти подзадачи на еще более мелкие подзадачи, и так пока не достигнешь размера в 5-10 минут👊. Короткое и простое дело легче начать, но главное – ты будешь знать, что делать👍.

Имея список📜 (а лучше – план🚫) действий, ты убьешь сразу двух зайцев🐇:
Во-первых, в маленькой задаче глаза не разбегаются👀;
Во-вторых, само написание плана действий – уже действие✍️.


📯Возьми этот лист и подотрись им

Во многом страх начать новое продиктован ответственностью, возлагаемой первым заложенным кирпичиком🧱. Ведь от того, как начнешь, зависит ход всего проекта🏃! А что, если ты накосячишь в самом начале, и это аукнется так, что потом придется все переделывать😨?

Как хорошо, что все это не правда🙅‍♂️. Мы не запускаем марсоходы, наши ошибки не стоят миллиарды долларов🪐. Но что самое важное, наши ошибки стоят намного меньше, чем промедление🐢 в стремительном потоке рынка🤑. К тому же, вероятность провалить проект из-за плохой идеи намного выше, чем вероятность провалить проект из-за каких угодно ошибок на старте🩼.


Почти все в ИТ сделано через жопу, и ничего, работает💩! Вот и ты снимай белые перчатки, засучай рукава, и начинай работать👨‍💻. В конце концов, ошибки – это ценнейший ресурс – опыт😎, который как раз и нужен для (зачаровывания инструментов📚💎) успешного проекта😁!

📯Аппетит приходит во время еды

Создай проект📱, настрой гит📱, создай беседу в тг📱 или другом настоящем мессенджере для работы📱, если у тебя команда. В общем, сделай вид, что ты уже начал проект🤥.


Подсознание обмануть не так сложно, оно сформировано для управления доисторической ящерицей🦖, которая в разы тупее курицы🐔.

📯Прекрати прокрастинировать

Подробнее я напишу об этом в отдельной статье, здесь только скажу, что в белой пустой комнате📝 проекты начинаются намного проще, чем за компьютером с Майнкрафтом🦥.


Благодаря всему вышеперечисленному, меня больше не пускают в магазины канцелярии📎, потому что их запасы белых листов начинают трястись и плакать при моем приближении😨.


👌 – Следую только второму совету, на этом мои новые проекты и заканчиваются...
🤡 – Страх белого листа сформировался из-за многолетнего систематического угнетения ими черных листов.
Please open Telegram to view this post
VIEW IN TELEGRAM
32🖕1💅11
Давно меня не было в уличных гонках🏎...
Но все хорошее когда-то заканчивается, так и мое отсутствие в этом паблике🤷‍♀️. Да-да, вы не ослышались, снова буду душнить про код и около него🎉!!!
А пока вы ждете новый пост, посмотрите, как я делаю новую прикольную игру в прямом эфире👀!
📱 Уже начали, присоединяйся! 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
2211
Простите, не мог писать посты. Ел крыжовник с куста.
1🔥73111
Как думаете, он реально умер или просто хайпит на своей смерти?
7🤔4👻3
Ну что же вы, ребята, не отчаивайтесь!
Завтра новый пост!
33🥴2
ИГРОВАРЕНЬЕ ДЛЯ ЧАЙНИКОВ

📯Что это?

Game jam – мероприятие, где разработчики пытаются с нуля выстругать игру на предложенную тему👨‍💻. Игровары работают соло, либо в небольшой группе🫂. Длится этот шабаш от одного до четырех дней🗓.


Это, конечно, в среднем, а вообще каждый пункт из определения выше может быть неправдой🤷‍♂️. Геймджемы все уникальные, каждый со своими правилами и особенностями🤩.

📯Сначала поговорим о награде

Иногда есть денежный приз💰, но, на самом деле, лучше, когда без него👹. Деньги там смешные, зато вместо здоровой конкуренции будут накрутки, обиды и истерики😡. Так что за деньги – нет🙅‍♂️.

По-настоящему ценной наградой геймджема являются опыт и респект😂. И да, в нашей ситуации, деньги действительно не главное😐.


📯Ахаха, может, мне еще и GNU-лицензией игру подписать?

Да, понимаю, делать что-то бесплатно – триггер всех работников интеллектуального труда😡. Но что, если я скажу вам, что это не бесплатная работа, а обучение на реальных кейсах в условиях рынка🛒, да еще и не за 180 000₽ (привет, GeekBrains🤓), а бесплатно😁? Глазки уже заблестели, отсюда вижу😎!

А еще не стоит забывать про нетворкинг🔗! И, хотя комьюнити там довольно специфическое🤪, и мало связанное с деньгами🍟, но ребята преинтересные и опытные🧠! Многих сам люблю слушать, и не стыдно🤓.


📯Бесплатный плейтест

Придумал прорывную идею, но как узнать, понравится ли она публике🤮? Приноси ее на геймджем🍰!


Тут за три дня ты склепаешь MVP, в которую точно поиграют люди👾! Это может сэкономить тебе годы(!) работы над проектом💩!

А организаторы приведут народ🤪, да еще и заинтересованный поиграть в разные игры🤓, в т.ч. и в твою. Звучит даже как-то незаконно🔐...


📯Кому туда не надо

Если ты разработчик, и хочешь быть разработчиком🚣, а не человеком-оркестром🪗, то на геймджемы тебе путь заказан. Больше всего очков опыта там дают в ветке геймдизайнерства🖥, далее работа в команде😭 (если она есть), а вот программирование/рисование/другой спец. скилл – совсем чуть-чуть🤏. Потому что если ты в трехдневном проекте начнешь соблюдать SOLID🏗, то к концу джема у тебя будет очень красивый рисунок ключика.🏴‍☠️. А игры не будет. Делай монолит, и не выпендривайся👊.

Также не надо туда идти, если ты хочешь побыстрее запрыгнуть на галерку🚣. Геймджемы – путь к открытию собственной студии🔞, а это значит жить на бабкину пенсию первые 3-5 лет👵, и то, если повезет🤞. То есть, конечно, если ты возьмешь проект с джема и допилишь его, хуже не будет, но первому проекту совсем не нужен джем👍.


🤡 – Мое любимое игроваренье – с клубничкой😏
👌 – Берем сперва укропу, потом кошачью жопу... Вот и получился проект на джем!
Please open Telegram to view this post
VIEW IN TELEGRAM
642🔥1
В ВУЗ НА ПРОГРАММИСТА

НУ ЧЕ БЛЯ ШКОЛЬНИЧКИ БЛЯ ДОПИЗДЕЛИСЬ НАХУЙ ЛЕТО ТО БЛЯТЬ ЗАКОНЧИЛОСЬ ЧЁ БЛЯ ЩАС КАК РАБЫ СИСТЕМЫ НАХУЙ ТОП ТОП ТОП БЛЯТЬ ПОЙДЕТЕ В ШКОЛУ НАХУЙ ОПЯТЬ УЧИТЬ ВСЯКУЮ ХУЙНЮ БЛЯТЬ ДОМАШКУ ДЕЛАТЬ

Я работаю репетитором довольно давно, и за это время прошел несколько вузовских курсов по программированию🎓. Как ни удивительно, изучив только их, даже со всем усердием, программистом стать не получится👎Как будто, вы и без меня этого не знали😮.

📯Что там есть

Усредняя уровень всех университетов огромной страны, вот, чему вас научат в неплохом заведении высшего образования🧑‍🎓:
1. 👅 Несколько языков на базовом уровне – в целом, жить можно, но без выкрутасов.
2. 🇬🇧 Технический английский – такого же качества, как в средней школе, то есть, надо самому доучиваться.
3. 👁 Полезные вещи вокруг программирования, которые дадут настолько поверхностно, что вы их даже не заметите – продукт-менеджмент, git, тестирование, дизайн, БД, UML, устройство ПК, сетевые протоколы и что-то еще.

То есть, это даже не интерн, это три четверти интерна👶. И то, при условии, что ты будешь старательно учиться, а не бухать🍻 пытаться понять, на что ты тратишь тут свои лучшие годы🤔.


Теперь давайте в двух пунктах поговорим о том, что в универе надо доучивать самому:
📯Архитектура

Институтская программа вообще не охватывает архитектуру🏗. Максимум, что там будет – это SOLID(👍) или GRASP(👎).

Начинающим программистам кажется, что это мидловский сложный скилл😬, однако это не правда🙅‍♂️. На самом деле, человек, способный написать даже сложный алгоритм🤔, но не понимающий, где и зачем он нужен, имеет не нулевую, но отрицательную ценность как работник👎, потому что попусту тратит время более опытных коллег💰.


📯Нет фреймворков

Программы и учебники к ним пишутся людьми, для которых Java – новиночка👴. В том мире можно было, выучив язык программирования, на нем и работать, однако это не так уже лет пятнадцать😔. То есть, ты можешь написать сайт на HTML + CSS + JS, но Angular позволил бы сделать лучше и намного быстрее💨. И так везде.

Это как строить дом без электроинструмента🧱: долго, сложно, и никому не нужно. Так зачем нужен работник, который вместо отбойника берет кирку?


📯Бей очкариков, поступай в ПТУ

Вообще-то, программист – рабочая специальность👨‍🔧, наравне с автослесарем🚘 или ветеринаром👨‍⚕️. За два-три года вполне реально вырастить крепкого джуна🤓 или даже слабого мидла😎, это не составит большого труда. Что с переменным успехом демонстрируют онлайн-помойкикурсы🗑.

Заведения же высшего образования делают упор на другое и нужны для другого. Они – первая ступенька🪜 в научной карьере👩‍🔬. И, если твоя мечта – разрабатывать стандарт 6G, быть по ту сторону LLM, шарить за Computer Science, то это твой путь🛤. Денег и возможностей там радикально больше🤑, однако не каждый осилит стать очкастым дрочилой в халате научную работу😑.


📯Но есть нюанс

После всего вышесказанного... Я бы все равно рекомендовал попытаться поступить в ВУЗ, а не в колледж🤷‍♂️. По крайней мере, в России🇷🇺.

Дело в том, что, кроме, собственно, обучения, хождение в ВУЗ выполняет еще одну важную функцию – твою социализацию😕. Выражается она в трех пунктах:


Во-первых, советская пропаганда, хоть и номинально была "рабочей👷‍♂️", на деле привила нам то, что человек без высшего образования – лох, дурачок и колхозан🤪. Это можно преодолеть личными достижениями🏅, но эти достижения не легче, чем просто окончить ВУЗ🤷‍♂️.

Во-вторых, это нетворкинг📇. Ты познакомишься с 20-50 людьми, которые будут работать, по большей части, в твоей области🍟 – это большое подспорье как в поиске работы, так и в поиске работников🧠. Также на 3-4 курсе ты увидишь кучу компаний, которые с руками готовы оторвать детей с горящими глазами и неплохими результатами🫴.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3💅211
В-третьих, ты сможешь посмотреть "в безопасной среде🛡", как выполняются проекты, освоить рабочее взаимодействие🤝 и так далее. А в свободное время (ты же не будешь наслаждаться молодостью🍻) можешь искать уже настоящую работу💼. Да и ВышМат не будет лишним, если честно.

С другой стороны, говорят, есть еще вариант поступления в ВУЗ после колледжа, но наверняка тут есть свои нюансы и подводные камни, так что изучайте сами🌐.


🔝 В начало поста 🔝

🤡 – Хз, я вот поступил в Синергию, и не парюсь
😭 – Я вас всех посчитал, вы все пидарасы в кубе
Please open Telegram to view this post
VIEW IN TELEGRAM
😭101🍌1💅11
Поздравляю всех вас👏, отныне наша группа друзей принимает обратную связь💬, и даже не за звездочки🌟 (пока что).
Вы можете предложить тему для статьи💡, записаться на занятия по Unity✍️ или просто поблагодарить админа за его базированное мнение😘!
ПС. А звездочки вы таки-можете оставить под постами😍.
Please open Telegram to view this post
VIEW IN TELEGRAM
4🤝33
ТРАНС-ДОЛЖНОСТНОЙ ПЕРЕХОД (ТАИНСТВЕННОЕ ПРЕВРАЩЕНИЕ ТЕСТИРОВЩИКА В РАЗРАБОТЧИКА)

Наслушавшись пугалок👻 про сложность вкатывания в ИТ, некоторые малютки решают выбрать путь🛤 "тестировщик > разработчик" или, не дай Бог😇 "тех.поддержка > тестировщик > разработчик".

📯А что, звучит хайпово

В целом, нельзя сказать, что у такой "стратегии" нет предпосылок: поиск работы – это долго, противно, изматывающе😪. А тут такой лайфхак! Ну как не поддаться🥰?

Ведь действительно, устроиться в QA проще, чем программистом😁, а в ТП – так вообще раз плюнуть💦! И, действительно, внутри компании на тебя работает нетворкинг📇, плюс, ты знаешь продукт🧠, а значит, знаешь, какие скиллы тебе точно нужны, а какие – точно нет🚫.


📯QA тоже работают

Может, для человека снаружи ИТ это не очевидно, однако тестирование – не менее квалифицированный труд, чем программирование👨‍💻. И время, которое ты потратишь на освоение этой дополнительной профессии – это время, которое ты мог бы потратить на борьбу с Путиным👮 обучение программированию📖.


Тестировщик – это не плохой программист, это отдельная специальность🤔. Из общего может быть только база языка👅 для автотестов, но это полторы недели учить💨. Все остальное время ты не то что не приближаешься, а даже отдаляешься от конечной цели🎯.

📯За двумя должностями погонишься – ни одной не поймаешь

Представь себя на месте руководителя💼: у тебя есть хороший тестировщик, который хочет стать плохим программистом🤔. Захочешь ли ты его отпускать🦮?


Но, конечно, если тестировщик не очень хороший💩, если он вместо работы постоянно к разработчикам лезет, или какие-то курсы проходит не по свой специальности⌨️, петы свои делает🏡, тогда другое дело, тогда с радостью такого человека надо отпустить. Только не в другой отдел, а на улицу😑.

Был бы он нужен как программист, его бы уже взяли как программиста🧠. А так он тратит деньги компании на то, что нужно ему, а не компании😏. И став программистом вряд ли изменится🙅‍♂️.


📯Иди работай

По-моему, в сущности, все это напоминает поиск схематоза😏 по быстрому обогащению, и не далеко ушло от формул успешного успеха😏. Секрет же, на самом деле прост: надо на ночь положить под подушку мышь (компьютерную)🖱, покрутиться вокруг себя🤩, сказать трижды в зеркало "я разработчик🫵", а с утра пораньше встать, и идти учиться👩‍🎓. Весь день☀️. Повторять, пока не попадешь на собес😎.

👌 – У тестировщиков не будет работы, пока есть клиент😂
😀 – Я тестировщик, сижу здесь, чтобы подсматривать за программистами👁
Please open Telegram to view this post
VIEW IN TELEGRAM
722💅11
MVP ИЛИ КАК ПОНЯТЬ, ЧТО ТВОЯ ИДЕЯ – ГОВНО

📯Minimum Viable Product

(Минимально Жизнеспособный Продукт) – версия приложения, которая с горем пополам решает одну проблему пользователя🌳. Без красивой анимации, с падающей БД, дешево и сердито🥰. Иными словами, пилотная версия👨‍✈️.


Первое, с чего начинают учебу бизнес-аналитики, продукт овнеры и прочие гады🐍 незаменимые специалисты – не доверяй интуиции🙅‍♂️. Твоя идея может быть бесконечно крутой, но какой в этом смысл, когда это неправда😂? А на кону стоят десятки миллионов🤑 (столько стоит разработать одно качественное, большое приложение).

📯Боль – гипотеза – MVP

Мир разработки состоит из предположений и их проверок: нашел проблему😖, придумал решение💡, проверил на малом бюджете👍, дальше по ситуации🔍. Не помчался брать кредиты на идею, которую в ванной придумал, а сначала убедился, что она сработает👩‍🔬.


📯Я идейный, буду пилить по ночам

Ну что ж, в этом случае.. тебе тоже нужно MVP😐. Ведь ты не хочешь потратить годы жизни на то, что в итоге схлопнется за полмесяца? Надеюсь, не хочешь🤨. Я, конечно, верю в тебя🤞, но история Stardew Valley, которую Эрик Барони пилил🪚 четыре года в одиночестве, на шее у своей девушки🤑, во-первых, уникальна☝️, а во-вторых, не совсем такова, как ее принято преподносить👉.

Конечно, ему отчасти повезло🍀, а отчасти, он создал действительно хороший продукт😎, работая по 10 часов в день😮. Сколько из вас готовы на такой гражданский подвиг🏅? А сколько из вас могут себе позволить четыре года не зарабатывать ни копейки🍽? Правильный ответ: никто.
Да и не было такого, что он свою игру делал в полном одиночестве👎, надеясь на чудо, и вот оно свершилось🤚. Эрик уже через год, имея первые наработки, начал получать огромный положительный отклик👍 с форумов и Steam Greenlight (в 2012 это не было позорное сборище мусора). И только поняв, что он идет верной дорогой🛣, Эрик продолжил работу, держа постоянный контакт с аудиторией📞.


📯Каков хороший MVP?

Итак, рецепт прост:
Берем сперва укропу
1. ✍️ Пишешь диздок (научу в одном из следующих постов). Сюда можешь вписать все свои хотелки, это – план-максимум👁.
2. 🔪 Вырезаешь все, чего не увидят 100% пользователей. Не 50%, не 80%, даже не 99.9%😶. Здесь ты должен оставить только необходимые функции, то, без чего приложение не состоится🏚. Крутой побочный квест туда не относится, основной сюжетный квест туда не относится, механика рыбалки, прости Господи, туда не относится (кроме как если это игра про рыбалку🎣)!
3. 📢 Рассказываешь о себе миру. Тут ты ищешь первые 50-100 человек, которые будут твоими пользователями👾. Для игр это может быть🫙 джем или донат/просьба стримеру📱. Например, xkoster каждую субботу проводит стрим с разбором игр подписчиков😮.
4. 💬 Внимательно записываешь в блокнотик мнение людей. Что не так, почему не так, как исправить, и все остальное👁. Ты же хочешь успешный успех, а не игру, в которую поиграешь только ты😎.
5. 🚪 Бросаешь проект, если он провалился. Если нет, продолжаешь разработку🚶‍♀️ и активно коммуницируешь со своим новым микрокомьюнити, ищешь издателя⌨️.
6. 💰 Выбираешь цвет Ламбы.

📯ИИ-бонус

Вот здесь выходят вайб-кодеры и говорят🙊: "Хмм, сделать говно, выполняющее кое-как свою основную функцию, но очень дешево и очень быстро💩? Это мы можем💩!" И будут правы, чего скрывать😱.


Но настоящим программистам бояться нечего😮‍💨: после успешного запуска такого приложения🚀, оно уничтожается🗑, и разработка начинается с начала👈, потому что поддерживать это нереально🔞.

👌 – Ну это же MVP
🤡 – Подождите, то есть после MVP надо делать нормально??!!
Please open Telegram to view this post
VIEW IN TELEGRAM
551🤝1💅11
На следующей неделе два поста, как в старые добрые🥳. Так что поставьте лайк на прошлый пост, и на позапрошлый, они заслуживают большего🫵. А если хотите, чтобы я и дальше оставался безработным, то распространяйте посты среди своих одноклассников📢.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉2💅2
СТАТИЧЕСКИЙ КЛАСС

📯Static

– ключевое слово, которое можно применять к типам и их членам, чтобы сделать их статичными😧.


Итак, по порядку:
📯Члены типов

Добавление static перед членом класса означает, что этот член не принадлежит больше каждому экземпляру класса, но принадлежит самому классу😐. И обращаться к такому типу нужно теперь по имени и отчеству класса(👍).


Например:
Proletarian.Property = "World";

Вместо:
Vasya.Property = "Bed in barrack and balanda";


А вот вам хрестоматийный пример с ID:
public class Employee
{
public readonly int id;
private static int idCounter;

public Employee()
{
id = ++idCounter;
}

public static void PrintId()
{
//Нельзя, потому что непонятно, чей id:
//Console.WriteLine("Id: " + id);
Console.WriteLine("Emps counted: " + idCounter);
}
}

Почти такой же есть в официальной документации Microsoft🤖, только мой написан (или, хотя бы, проверен) настоящим человеком🤦‍♂️.

📯Типы

Тут все просто, в статическом классе могут быть только статические члены👍. А еще, его нельзя создать экземпляр👶.
Все👍.


📯Плюсы, минусы, подводные камни

Итак, дети, для того, чтобы получить статический⚡️ класс, нам нужно взять свою эбонитовую палочку😉, и потереть ею о микросервисную архитектуру😏. Потом, не вытирая, об unit-тесты и многопоточность😓.

Видишь ли, никак не получится вытащить🖐 этот статический класс и зависящие от него в отдельный модуль🥚, а значит, как ни старайся, будешь писать монолит💍.


И тем не менее, статические классы быстрее и удобнее в разработке🏎 (но не в поддержке), так что иногда не так уж и страшно написать говнокод💩.
К тому же, в отличие от целых классов🙂, статические свойства и методы могут обеспечить удобный глобальный доступ🌐 к определенным модулям программы.

А подробнее о том, как не кринжово использовать статику мы поговорим в следующей статье⬇️

😭 – грустить трагически
🩼 – написать класс статический
Please open Telegram to view this post
VIEW IN TELEGRAM
103🔥2💅1
Wild Russian GameDev Mentor
ГАЙД ПО РЕАКЦИЯМ Товарищи! Для того, чтобы вы могли точнее выразить свое впечатление от статьи, добавил еще больше кастомных реакций, даже пришлось запариться с созданием собственного пака. И, так как они все имеют неочевидное для обывателя назначение, в…
Господа, а я вам напоминаю, предложенные реакции в конце статей существуют не для ознакомления, а для активного применения🚬. Я, конечно, ценю ваши сердечки и огонечки, но когда их больше, чем официальных реакций, это наводит на мысли (о вас 🫵(плохие👎)). Не заставляйте переходить к крайним мерам👊.

🗿 – 1984
🤡 – 1984
😐 – 1984
😭 – 1984

🩼 – 1984
Please open Telegram to view this post
VIEW IN TELEGRAM
😭5🔥2222🌭1🤓11
SINGLETON – ПАТТЕРН, О КОТОРОМ НЕЛЬЗЯ РАССКАЗЫВАТЬ НА СОБЕСЕДОВАНИИ

📯Singleton

– паттерн, гарантирующий, что в программе будет лишь один экземпляр этого класса🥇.


Стоит заметить, что в определении присутствует слово "экземпляр"📖, так что сделать такой класс статическим не получится🙅‍♂️.

А вот простейший пример:
public class Singleton
{
private Singleton() { }

private static readonly Singleton instance = new Singleton();

public static Singleton Instance
=> instance;
}


Здесь мы приватим конструктор, чтобы никто другой его не использовал🔓, а затем создаем свойство instance для доступа к нашему экземпляру👉.


📯Плюсы

Использовать Singleton мы можем, когда нам нужен статический класс⚡️ (для вещей, которых должно быть только одна: чтение/запись в файлы, общение с БД, настройки, глобальные переменные и др.➡️), но нам не подходит статический класс⚡️. Например, хочется использовать наследование🤰, безопасную многопоточность, и всякое другое⚙️.

К тому же, для статического класса иметь состояние (хранить данные🛍️) считается жутко неприличным🤢. Синглтону же чуть-чуть можно😉.


📯Минусы

Да, в целом, такие же, как и у статического класса:
Видишь ли, никак не получится вытащить🖐 этот статический класс и зависящие от него в отдельный модуль🥚, а значит, как ни старайся, будешь писать монолит💍.


И, несмотря на то, что многих недостатков статического класса синглтон лишен, главный все же остается😱. К тому же, в редких случаях, когда полностью оправдано использовать статику⚡️ – для хранения констант, например – синглтон оказывается перегружен🤔.

📯Подводные камни

Хотя Синглтон в том или ином виде применяется повсеместно, все его ненавидят😡. Ни один разработчик не может создать приложение без него🤬 (читай: "разработать настоящую микросервисную архитектуру"). По крайней мере, за адекватное время. И это их бесит😡.

Синглтон – это знак их беспомощности😩.
Синглтон – это ложка горькой правды🥄 в их медовом мирке Clean Code`а🍯.
Синглтон – это кричащее напоминание😱 о том, кто они на самом деле – очень дорогие пиздаболы💰.

Но нам придется притвориться, что мы этого не знаем🤫. Ведь иначе они очень расстроятся и, возможно, даже заплачут😭. А если и нет, в любом случае обидятся и работу не дадут.

😎 – Паттерн сигма, как и я
😭 – Надеюсь, он не плачет по ночам, как и я
Please open Telegram to view this post
VIEW IN TELEGRAM
😎4💅22😭11
СЛОИ ИРОНИИ В ТВОЕЙ ПРОГРАММЕ

Современные программы большие🐋, они состоят из тысяч строк кода📖. Однако сконцентрированное, внимательное осмысление информации👁 может производиться человеческим мозгом🧠 в очень небольшом объеме🤏. Это не относится к поколению Альфа с их ТикТок-мышлением📱, это относится ко всем🫵. Как же вообще существует ИТ-индустрия🫥?

📯Разделяй и властвуй

Я много писал про модульность кода🧱 – это разделение по горизонтали. Но есть еще и разделение по вертикали🔼. Иными словами это называется введением слоев абстракции👻.

К одному уровню/слою абстракции относятся куски кода, одинаково близкие к железу👩‍💻. Мы не можем одновременно учить ребенка ходить🚶‍♀️ и рассказывать ему же, как пройти на площадь Ленина😐.


То есть, когда я хочу заспавнить скелета☠️, я не хочу разбираться, в какую коллекцию его положить📦 для более эффективной работы с данными.

📯А как?

Необходимый минимум – это два слоя👍, один с пиками, а другой... в верхнем⬆️ мы описываем логику работы программы, как ее представляет пользователь🤪 или ГеймДизайнер👨‍🎨:

if (ButtonPressed(Space))
Jump();

– И все! Как делать этот Jump() мы здесь не знаем и знать не хотим🙅‍♂️.

На последующих уровнях идет детализация, мы можем разбить💔 Jump() на еще несколько уровней🎚, если это требуется, например, работа с физикой🎳 и работа физики💫. В первом мы говорим "пнуть вверх с силой X"👊, а во втором – что означает пнуть, куда это "вверх", и в чем сила(, брат)🤔.

Работая с крупными движками📱, мы обычно один или даже несколько нижних слоев абстракции берем оттуда🤲, однако:
1) Мы можем туда влезть🔧, если нам что-то не подходит и прям очень скучно на работе🥱,
2) Нам все равно полезно знать😎, как оно устроено в целях оптимизации💨.


📯Организация

Разделение на слои абстракции носит весьма умозрительный характер💡. Идеально будет, если вы раскидаете их по разным классам🙂, минимум – разные методы внутри одного класса👍.

📯Не впадайте в крайности

Конечно, разные слои не должны быть совершенно оторваны друг от друга😋, и мы все равно смутно думаем о том, что будет потом😐. При том, думаем снизу вверх🔝: конкретика зависит от абстракции.


👌 – А я абстрагировался от построения архитектуры
🤡 – А админ абстрагировался от расписания постов
Please open Telegram to view this post
VIEW IN TELEGRAM
6321
Товарищи, уже придумали планы на выходные🗓?
Отменяйте, ведь завтра начинается Ludum Dare – самый базированный джем в мире!
И я участвую!
📱 В прямом эфире! 📱

Суббота и воскресенье примерно в 12:00-20:00,
в понедельник – как получится.


Со мной будет еще неопределенное количество художников👨‍🎨 (от двух до трех, пока не ясно), так что игра получится не только лучшая, но еще и красивая💩.

На призовые места мы не рассчитываем👍, но уверены, что получится хорошо провести время, так что приходите💃!

З.Ы. А если есть кто-то с музыкальным талантом или с талантом искать бесплатные SFX в интернете, отпишитесь в сообщения канала – вы нам нужны.
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2
Стрим задержался по техническим причинам, но уже начался!

📱 Заходите! 📱
Please open Telegram to view this post
VIEW IN TELEGRAM
😎3🍾1👾11
Широкий Ludum Dare 58 идет
5