Резюме для программиста
Очень сложно подобное представить и что никак не сгруппировать это.
-----
Ну давай сгруппируем.
Даны две единицы оборудования.
- первая отмечается как "ГРХМ"
- вторая отмечается как "БРТО"
Дополнительно известно, что в обозримом будущем будет введена третья единица, но неизвестно будет она добавлена или заменит одну из существующих.
Группируй!..
Когда сгруппируешь подумай над простым вопросом - будешь ли ты писать и поддерживать свитсч по отметкам или подумаешь об другом решении.
А как делают?
делают базовую библиотеку, которая вызывается в проектах под каждый тип оборудования с определёнными параметрами.
отмечается как
Как кто отмечается, не интересует - это может быть просто поле типа ИД, интересует функциональность.
Ставите шефу вопрос ребром, и он сдаётся?
Ну так вроде с этого и начиналось - подобные проекты обходятся стороной.
Внутри уже не разбежишся.
интересует функциональность
------
Так это - предоставление своей идшки - и есть вся определенная на текущий момент функциональность...
Объясни ему IOC. Не воспримет, но по крайней мере будет знать что слышал что есть что-то другое...
Сколько лет нужно чтобы написать столько проектов?
-----
При наличии документации и указанной выше функциональности - 2-3 человеко-недели.
А если документации нет, а есть просто сто проектов? Как разобраться?
Объясни ему IOC.
Это настолько широкое понятие, что общее объяснение не имеет практического смысла, а практических примеров столько разных, что за ними теряется общий смысл. Короче, очередной god-like-pattern, который удобно использовать инфоцыганам для своих мерзких делишек.
А если документации нет, а есть просто сто проектов? Как разобраться?
Берешь таск из бэклога и коллегу, который уже давно работает :) Коллега указывает тебе направление и дает вводные по таску. Ну а ты вместо 2 часов делаешь этот таск 3 дня, потом следующий таск и так далее. На 50-ом таске будет уже примерно понимать где что :)
предоставление своей идшки - и есть вся определенная на текущий момент функциональность
ну да и по этому ид пишем весь софт для этого оборудования
При наличии документации и указанной выше функциональности - 2-3 человеко-недели
это если кодогенератор в соседней комнате спрятан
Ну или проект из пары строчек.
Чтобы не ковыряться в спагетти созданном из той же функциональности, но в одном проекте
Зачем вообще в подобном ковырятся?
ну да и по этому ид пишем весь софт для этого оборудования
------
Ну есть вариант писать все это в едином массиве... для лучшего усвоения вместо свитча пишем ифы...
НП.
Меня лично выбешивает только одно, что в каждой фирме разный JavaScript фреймворк используется, в одной фирме jquery, в другой vue.js, в третьей mootools, а vanilla js не используют.
На проекте папки именованы так, как выше писал, а энумы примерно так
enum States
{
01_Start
05_Settings
10_Processing
12_PostProcessing
20_Savings
30_Logging
}
Писал какой-то чел, любящий всё упорядочивать даже во всплывающих подсказках. Причём оставлять места для будущих промежуточных вставок. Подход каких-то бородачей из 80-90-х. Современные смузи-скриптизёры так не делают. Сейчас народ, понимаешь, экстеншены ваяет с сортировкой, кастомные атрибуты для энумов. А эти старпёры просто берут и грязными хаками занимаются! ))
Кто так же пишет?
Так обычно ведь так пишут:
enum States : int { Start=1, Settings=5, Processing=10, PostProcessing=12, Saving=20, Logging=30 }
А в Intellisense получают
Logging
PostProcessing
Processing
Saving
Settings
Start
А надо в том же порядке, как объявлены.
В Шарпе (а также С++, и, наверное, куче других языков с нумерованными константами) значения нумерованных констант вроде и могут быть упорядочены, но удобного встроенного доступа для получения или отображения этих констант согласно этой упорядоченности нет. Поэтому есть варианты для энумов, требующих упорядоченности:
- городим разные расширения-атрибуты для энумов,
- заменяем энумы полноценными типами, в которых храним инфу об упорядоченности,
- просто добавляем упорядоченность в названия - по умолчанию все тулзы сортируют это по алфавиту.