Как узнать уровень спрашивающего?
Предыстория
Отвечая на вопросы замечаешь, на сколько может быть разношёрстным комьюнити SO.
При этом бывают такие проблемы, что приходиться писать код как для low-level реализации, так и для high-level реализации. Учитывая, что в итоге с вероятностью в 90% пригодится только 1-а, ты выполняешь двойную работу. И это хорошо если high-level делается только в 10 строчек, но такие ситуации бывают не всегда.
Ещё пример. Тебе задают вопрос, и есть одно "но": по тексту вопроса не понятен уровень его автора, но вроде кажется, что автор "шарит". Отвечаешь и происходит недопонимание, ведётся объяснение или редирект на статьи. В итоге потраченное время на ответ и 0 выхлопа. И я не про репу. Ведь наша задача помогать, а не хвастаться своей репутацией.
Идея
Так к чему это я. Мне в голову пришла идея: можно ли добавить в SO пак меток (а также их русскоязычные аналоги) + добавить в профиль одну фичу. Данные нововведения могут рассматриваться отдельно друг от друга, но при этом пересекаются м-ду собой, поэтому поместил в 1 вопрос. Но обо всём по порядку.
Пак меток
Пак меток выглядит вот так: [any-level], [low-level], [high-level] (это про уровень абстракции кода). Данные метки показывют в каком формате должен быть код внутри ответа: низкого и/или высокого уровня. Как данные метки могут употребляться:
Употребление меток
{ [any-level] ИЛИ { [low-level] И/ИЛИ [hight-level] } }
Примечание: Здесь
ИЛИ
не логическоеOR
, а "простоязычное" "либо...либо"Смысл одновременного использования, скажем, [low-level] и [high-level] в том, что автор вопроса может принять оба варианта. Если это реализовывать на C# то это будет
SkillLabel
, гдеSkillLabel
–enum
меток скилла с кастомным аттрибутомFlagsAttribute
.public enum SkillLabel { Unknow = 0x0 LowLevel = 0x1, HighLevel = 0x2, AnyLevel = LowLevel | HighLevel }
На всех предыдущих вопросах будет неявно (не будет отображаться) добавлена [any-level] для совместимости. Сами метки должны выделяться среди других меток подобно SO Meta (или SOM?). Так же эти метки обязательно не должны занимать место среди прочих меток. Спустя некоторое время под каждым вопросом явно должна быть указана хотя бы одна метка из данного пака.
Теперь, если вы видите вопрос с метками, скажем, [high-level] [.net] [c#] [.net-core] [алгоритм] [данные] (заметьте, меток 6 = 5 обычных + 1 метка из пака), то вы сразу понимаете, в каком формате ваш код готовы приветствовать.
Фича для профиля
В профиль можно добавить свойство "Навык". Т. к. данное свойство привязано к участнику, а не в вопросу, а также является динамическим, то ему самое место в профиле. Это св-во можно реализовать по разному, но я, опять же, предпочитаю через перечисление: unknow, junior, middle, senior. Его может менять только сам участник. Если оно не unknow, то обязано высвечиваться рядом с аватаром спрашивающего и явно бросаться в глаза. Изменение данного св-ва может происходить только через время (2 попытки (на случай ошибки), затем call-down на неделю (или день)). Спустя время значение unknow станет невалидным (нельзя будет его назначить, но если оно было до этого, то не должно форсированно меняться; т. е. выйти можно, войти нельзя).
Теперь если вы видите вопрос от middle'а, то
- Если вы junior: на него отвечать не будете
- Если вы middle: отвечайте как отвечали
- Если вы senior: комментируйте слишком сложные для middle'а моменты, чётче поясняйте ему что да как (вы, наверно, и без меня знаете)
Итог
Данные нововведения должны облегчить давание ответов, расширить информацию как о вопросе, так и о спрашивающем, позволит дать более развёрнутый ответ и снимет "оковы незнания" с отвечающего.
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.