Этикет разработки

Сообщения
1,536
Реакции
2,324
Помог
39 раз(а)
Предлагаю обсудить тут моменты, которые стоит учитывать и реализовывать, чтобы другим было приятнее пользоваться вашими творениями.
Все что вы выкладываете в общий доступ не должно попадать под ваши придуманные оговорки "Я писал это для себя, поэтому делал все, как мне удобно". Оно должно быть удобно, читабельно и понятно другим.
Это будет дополнением темы "Правильный стиль оформления кода в программировании"



1. Используйте GitHub

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


2. Храните настройки не только в исходном файле, а позволяйте так же выносить и использовать их в конфигах.

Редкие плагины требуют "одноразовой" установки значений и вы заставляете администратора игрового сервера каждый раз компилировать плагин.


3. Храните фразы в словарях через переменную, а не в исходном коде ввиде хардкода.

Берите за основу английский язык и по возможности расширяйте словарь своим родным языком. Сообщество так же сможет подключиться и помочь в вам в переводе на другие языки. Не лишайте их такого права.


4. Используйте понятный человеку changelog и последовательную нумерацию

Группируйте свои изменения в группы для читабельности. Маркируйте каждую версию новым порядковым номером, обычно используется последовательная нумерация, разделённая точкой: например, 1.5.2. Первое из них — старшая версия (major), второе — младшая (minor), третья — мелкие изменения (maintenance, micro).

Мы можем использовать простую систему группировки изменений согласно их влиянию на проект, которая будет разделена только на 4 группы: Added, Changed, Fixed и Removed.
А можем расширить их до таких групп:

Added для новых функций.
Changed для изменений в существующей функциональности.
Deprecated для функциональности, которая будет удалена в следующих версиях.
Removed для функциональности, которая удалена в этой версии.
Fixed для любых исправлений.
Security для обновлений безопасности.


Многие не считают нужным повышать каждый раз версию своего плагина из-за каких-то недочетов.
Я считаю это не правильным, потому что при ошибках, я даже не могу сослаться на версию, в которой они возникли, т.к. автор решил маркировать изменения фразами "Правки в коде. Хотфикс. Мелкие недочеты. Исправил косяки и т.д." и мне придется дополнительно объяснять ему, какую версию "Мелкие недочеты" я имел ввиду.
Да и выглядит это ужасно и не компетентно, словно студент первого курса влил воду в свой реферат и считает, что так и надо.

Для сравнения возьмем записи:

Маленькая поправка
  • Оптимизация
  • Косметические изменения
  • Не заметил ошибочку
  • Убрана лишняя проверка
Или короткие, но понятные правки

Обновление до версии 1.1.3
  • Добавлен STEAMID игрока в название демо
  • Убрана поддержка 1.8.2
  • Убраны дата, время и STEAM_ID игрока из формата имени демо
Сделаем более расширенный вариант записи по группам

Version 2.2
[Added]
  • Russian translation
  • MySQL support
  • new setting NOTIFY_ON_KILL - if enabled, players will receive chat notifications about the XP they received when killing a player.
[Removed]
  • Support Amx Mox X ver. 1.8.2
[Changed]
  • rename cvar rank_user_xp in aes_user_xp
[Fixed]
  • the method responsible for reading the results from the database has been fixed (the index was not updated in it)
  • compilation errors

Кто-то сможет дополнить данный список или может не согласен с текущим?
Тема во флуде, поэтому можем обильно все обсуждать и достичь общего стандарта для форума, если мировые стандарты кому-то не удобны.
 
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
Это касается только ресурсов? Или в блоге теперь это тоже будет заведено?
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
Javekson, это рекомендации по написанию плагинов/модов etc.
 
Сообщения
141
Реакции
201
Помог
5 раз(а)
Сообщения
56
Реакции
84
6. Поддержка модульности, в целом API.
 
Последнее редактирование:
Сообщения
10
Реакции
12
3. Храните фразы в словарях через переменную, а не в исходном коде ввиде хардкода.

Берите за основу английский язык и по возможности расширяйте словарь своим родным языком. Сообщество так же сможет подключиться и помочь в вам в переводе на другие языки. Не лишайте их такого права.
Пожалуй, стоит отметить еще, что было бы неплохо давать переменным понятные имена, чтобы код был читабелен. А то есть делать new iA, iB; не думаю, что так будет удобно читать код.
И еще не менее важным считаю оставлять комментарии в коде.
 
Сообщения
2,751
Реакции
3,017
Помог
61 раз(а)
Rabb1t, не внимательно ты начало прочитал
 
Сообщения
10
Реакции
12
wopox1337, да, не заметил, что это продолжение. Приношу свои извинения.
 
Сообщения
77
Реакции
-1
Предупреждения
30
Помог
1 раз(а)
Как хорошо что за 5 лет никто не написал правила модульности, правила API. А то нынче у тех чей хлеб зависит от написания плагинов, да и прочие неформалы так любят раздробить недробимое, сделать API даже для козявок в носу, и построить прочие этажи бесполезности. Уж простите за прямоту, но так раздражает эта модульность в каком то маааааленьком, сеееееереньком, проходноооом плагинишке, которая отнимает порой столько драгоценного времени при настройке того что должно быть константой. Спасибо. Я рада что здравых людей больше, и это большинство трудится в благих направлениях, в отличии от того меньшенства чьи стремления и страсти не о пользе а только о своём возвеличивании. Всем хорошего вдохновения.
 
Сообщения
1,055
Реакции
212
Предупреждения
9
Помог
6 раз(а)
Ulianochka, по вашему очередному "умному" комменту можно сделать, что лучше вообще ничего не писать

Или это опять ваши "великие" знания в разработке?

Действительно, сделайте лучше, переверните мир amxmodx, а то одно нытьё везде, что в PAWN все ужасно и не понятно, а скриптеры и подавно зажравшиеся

А то везде "сделайте, доработайте, это лишнее, это не нужно, это перебор", если это создано, значит есть нужда в этом.
 
Сообщения
267
Реакции
0
Предупреждения
2
Помог
5 раз(а)
BiZaJe, по факту сказал, поддерживаю. Пусть переписывает мод amxmodx и не ноет
 
Сообщения
1,578
Реакции
663
Помог
5 раз(а)
BiZaJe, излишняя модульность для конечного пользователя тоже не хорошо, если скриптер плагин в 200 строк разбивает код на 10 исходных файлов, то это уже действительно выпендрёж. Или когда один плагин в 200 строк кода, разбивают на 10 плагинов по 20 строк кода, это тоже излишняя модульность и до добра не доведёт.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу