Чи публікувати проєкт на GitHub?

💡 Усі статті, обговорення, новини для початківців — в одному місці. Приєднуйтесь до Junior спільноти!

Публікація анонімна.

Я вчусь розробляти ігри на Unity, зараз оформлюю GitHub з моїми проєктами. Маю декілька невеликих проєктів, які однозначно варто публікувати, там не дублюється код, добре названі класи, поля і методи, і можна легко розширювати їх і змінювати якісь параметри.

А також є проєкт, щодо публікації якого я сумніваюсь. Там теж не дублюється код, але мені не дуже подобається архітектура. Це гра на клітчастій дошці, позиція (розташування елементів) на дошці представлена, як масив символів (char). Так званих «магічних» літералів, звичайно, немає (символи ініціалізую з інспектора через ассети ScriptableObject, як і відповідні символам спрайти для відображення позиції на екрані). Але вся логіка з масивом символів (всі методи для ходів вгору, вниз, праворуч або ліворуч) розміщена в одному скрипті, який через це містить майже 700 рядків.

Я можу винести методи до інших скриптів, але тоді доведеться передавати масив через параметри, від чого може погіршитись швидкість роботи гри.

Скажіть, будь ласка, як краще вчинити? Чи треба це зробити і чи треба публікувати проєкт, якщо так, то який з двох варіантів?

Підписуйтеся на Telegram-канал @gamedev_dou, щоб не пропустити найважливіші статті і новини про геймдев

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Оба) в чем трабл то?) Легаси это норма (второй). Мы в любом случае планировали тебя избить, а так то хоть повод будет))))

Тут треба поставити питання — а чому виникло таке питання? Публікація проекту має на меті якийсь сенс?
Варіант перший — не втратити код в разі чого, може десь флешку втратив чи щось таке — в такому разі люди не паряться, що там код який їм самим не подобається. Тут гітхаб дає можливість просто зробити цей репозіторій приватним. 80% комерційного коду різних корпорацій на рівні кодування українського студента першого семестру першого курсу, написаний десь в Бангалорі в середені нульових з оплатою за кількість операторів. Сучасні ІТ спеціалісти з Індії з такого коду тягне блювати не меньше ніж нам. Це настільки зашквар, що його ніхто і сам бачити не хоче. Тобто не треба робити структурно не якісний код публічно в такому разі.
Є ціль публікації — показати потенційним роботодавцям як ти пишеш код, тоді — особливого сенсу викладати код який тобі самому не подобається, без рефакторінгу — напевно не треба.
І третій варіант — охота зашарити із комьюніті результат своєї роботи на зацінити, скажімо як Лінус Торвальдс зробив із Linux, тоді власне пофіг. Як не дивно добрі корисні програми, цікаві ігри — далеко не обов’язково мають добру структурну якість коду. Структурна якість важлива на сам перед для командної/комьюніті роботи над кодовою базою і для підтримки проекту — тобто швидко знайти помилку і виправити їх чи легко додати чи переробити якийсь функціонал. Тому скажімо OpenSSL — де код вже дістався такого рівню ентропії застарілих кусків коду і загалом спагетті — що вирви глаз. Та від цього бібліотека не стала меньше використовуваною і меньше коректною чи корисною, от правда фіксуються постійні проблеми з секьюріті, тим що бібліотека використовує занадто багато пам’яті та повільно працює тощо. І банально складно використовувати. Тому особисто я віддаю перевагу GnuTLS. Так само із іграми — хочете грати в гру з купою людей ентузіастів інді — ні кому не цікаво поганий там код чи хороший, цікаво наскільки гра цікава.

Та викладай. Все одно ніхто не буде читати код. А так для себе оформи гарно репи. Поітм приємно дивитися :)

Ну і не парься хто там що буде думати про твій код, У них він в 100 гірший.

Удобнее юзать систему контроля версий какую-то, а не держать код в архивах. В принципе раньше использовался SVN, и он всем удобен, кроме ветвления. Сейчас практически повсеместно все перешли на git. Ну а в архивы ты можешь делать бэкапы репозиториев гита.

Ну... в Linux обмещення 4096, знову ж таки git більше для сирцевого коду та текстових файлів. 100 Mb, оскільки я розумію, це обмеження github, а не git. Це логічно, бо інакше можна було б використовувати github як хостинг. Взагалі git більше для текстових файлів, я би задумався про окреме сховище для бінарів.

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

А потім примусили урізати назви папок...

Виглядає, що твоє питання стосовно доцільності публікації — доречне, якщо назви папок такі, що тре скоротити :)
Я б радив трохи почистити такий проект

То він з файлами більше 100 мегабайт відмовляється працювати

Нащо такі файли взагалі можуть бути потрібні?
Якщо це дані — то їх місце не на гіті.

В принципе раньше использовался SVN, и он всем удобен, кроме ветвления.

А rebase як зробити?

Там типичный workflow из одной ветки состоит. В принципе потребности ветвления зависят от того, какой подход используется. Либо свалить всё в один репозитарий, либо каждый более-менее автономный проект делать в отдельном репозитарии. Если каждый в отдельном — там может работать спокойно 1-3 человека, и ветвление вообще не нужно.

Я перезаписываю историю даже без ветвления. Например, три коммита назад я увидел, что случайно добавил отладочный принт. Я удалил его из того коммита, где он был, чтобы не мусорить. Поэтому не «всем удобен, кроме ветвления»... а ещё есть сценарии.

1. Розмістити всі проєкти на github.
2. Накидати посилань на проєкти на DOU.
3. Прочитати відгуки.
4. Протерти монітор від гіркіх сліз.
5. Піти виправити код, коміт-лог, опис, тощо, щоб це виглядало, як хоче DOU.

Коментар порушує правила спільноти і видалений модераторами.

Скажіть, будь ласка, як краще вчинити?

Та пофіг, в рідмі напишеш що це PoC щоб попробуватм а,б,в. Тому архітектура і т.п. не ідеальні

В принципе абсолютно пофиг, что ты выкладываешь на гитхабе, главное как ты это продаёшь. Есть как хорошо проработанные никому ненужные проекты, так и попадается откровенная шляпа с кучей звёзд. Но больше всего, и это 95% — откровенная шляпа, которая никому не интересна.

Публікуй не задумуючись. Не пустий профіль на github це однозначний плюсик до твого CV.

сильно зависит от качества опубликованного )

Ти ще скажи що там хтось той код читає.

когда в CV вижу ссылку на github лично я читаю обязательно
и, кстати, обычно это работало против автора кода )

Ну ви вийняток.
Я по своїй практиці скажу що це все просто красиві рекламні фішки. Навіть коли компанія залучає інвесторів намагаються по більше запхнути у публічний github щоб просто була активність. Вже багато кейсів таких проходив.

Я читаю, бо це, напевне, більше з усього впливає на оцінку. До речі, у мене в практиці була ситуація, коли на співбесіді мені сказали: «Ми подивилися на ваш github, у нас немає питань, готові до співпраці».

сильно зависит от качества опубликованного )

Человек 700 строк кода написал. Там фигурирует массив из символов char в качестве квинтэссенции архитектуры.

Надо больше строк кода писать, квинтэссенцию архитектурной мысли углублять.

Ну по перше які цілі. Якщо поділитися з тими, хто може зацікавитися, то якість не занадто важливою. Якщо продати себе, то... я не бачу нічого страшного, коли є обґрунтування чому саме написано так (швидкодія чи ще щось). Ну 700 рядків і 700 рядків, я бачив і більше. Особисто мені з опису більше не подобається масив, для ігор на дошці я все ж таки більше використовую біти.

Ну... я навіть писав статю на хабрі про це у розрізі руських шашок:
<посилання на статтю на російському ресурсі видалене модератором>
Репо: github.com/mustitz/checkers

Тут описується magic bitboard техніка у шахах, але зараз нові процесори мають PEXT, тому вже небагато магії там лишається.
www.chessprogramming.org/Magic_Bitboards

Ну... в принципі є мої рушії у футбол на аркуші паперу
це бранч з радянським: github.com/...​ootball/tree/rus-football
це бранч з західним github.com/...​aper-football/tree/master

в мене взагалі це замовили декілька місяців тому на фрілансі за 30$

Що?!
Оце стільки коштує розробка гри?
Чи тут якісь символи втрачено? Наприклад «К», або «год»?

немає там нічого

Підписатись на коментарі