All streams
Search
Write a publication
Pull to refresh
5
0.2
Send message

Поиск подходящей заявки в соответствии с ТЗ номер, правила параграфа...

Всё это должно быть описано в задаче в жире (или другой системе). Пулл-реквест привязан к задаче, которая является источником правды для кода. Комментарий в коде с дублирующим текстом излишний, вся информация будет в системе контроля версий (как минимум, номер задачи в commit message).

Как именно комментарий предоставляет инструмент ручной проверки кода? Сам код вне зависимтости от наличия комментариев должен быть настолько простым для чтения, насколько это возможно: понятные имена переменных, методов и классов, минимальное количество ветвлений и циклов, оптимальный размер методов и ограниченная вложенность кода.

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

Пока что все разработчики без исключения - люди. Люди имеют свойство ошибаться, быть невнимательными (особенно в спешке, исправляя супер-срочный баг). Чем больше автоматических проверок, которые не зависят от человеческой внимательности, стоят на пути бага до продакшна - тем лучше, и наоборот.

На мой взгляд, при проектировании систем (не только приложений, но и сред разработки, и языков программирования, и coding conventions на проекте) нужно учитывать, что ими пользуются люди, которые обладают недостатками. Конечно, можно сказать, что если пользователь ввёл некорретный имейл, из-за которого система работает некорректно, то он сам виноват. Но хорошо спроектированное приложение должно быть устойчиво к таким ошибкам и предусматривать логику валидации и подтверждения почты, например.

Так же и с соглашениями по кодстайлу: разработчики это тоже люди, и тоже склонны ошибаться, быть невнимательными, особенно в спешке - а компилятор и кодстайл могут и должны помочь в предотвращении этих проблем.

Возьмём приведенный пример с методом парсинга: SomeValidator.TryParseInt("3"); со списком выбрасываемых исключений в xml-документации. Хорошо, если этот метод был реализован один раз и почти никогда не меняется, но что если вдруг нужно исправить срочный баг? Например, при передаче в тексте числа, выходящего за границы int32, происходит переполнение - и при фиксе бага разработчик добавил там проверку, которая может выбрасывать ArgumentOutOfRangeException. Конечно же, документацию в xml-комментах обновить забыли. Теперь доки не просто бесполезны, а даже вредны - потому что врут.

Альтернатива исключениям в бизнес-логике

Даже если бы не забыли обновить доки - как в этом случае убедиться, что все кто использует этот метод, учли новый тип исключения наряду с уже описанным ранее CustomException?

На днях пришла хорошая новость: в C# появился пропозал о добавлении Type Unions, так что теперь, надеюсь, получится написать метод так:

public static (int or ParseError) TryParseInt(string input)
{ /*...*/ }

Таким образом, уже в самой сигнатуре метода определены варианты того, что можно вернуть. При таком подходе компилятор может проверить, что вызывающий код гарантированно предусматривает вариант для каждого из возможных возвращаемых типов:

var x = result switch
{
    int a => x,
    ParseError err =>
    {
      Console.WriteLine(err.Message);
      throw new Exception("Parse failed: " + err.Message);
    }
};

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

Комментарии в коде, как часть системы, должны быть устойчивыми к слабостям разработчиков. А дублирование логики кода в комментарии (как в примере - список выбрасываемых исключений) - это уязвимость к человеческим ошибкам, которая может выстрелить при частых изменениях кода и недостаточном процессе код-ревью.

Я считаю, главная цель комментариев - не описывать, что делает тот или иной фрагмент кода, а для чего он предназначен, и почему он реализован именно так. Ответ на первый вопрос ("что") должен давать сам код, через понятные имена методов, классов и переменных. А информацию по другим вопросам ("для чего" и "почему") может быть намного сложнее получить из самого кода, и для них комментарии - хороший источник ответов.

Голоса некоторых участников сообщества (видимо, старожилов с большим рейтингом) считаются с бОльшим весом.

Ага, и в итоге фермеру вместо того чтобы пойти на ближайший рынок удобрений, нужно будет на своём грузовике поехать за полтысячи километров до производителя, который обрадует его тем, что "нам не выгодно продавать тебе одну тонну, мы готовы продавать от тысячи тонн".

Рынок играет важную роль в экономике - перераспределение благ, наряду с их производством и потреблением.

Ещё попробуйте сообщение от ошибке из графического окна скопировать - удачи, почему-то до сих пор в 90% случаем не копируемые.

Кстати, в стандартном виндовом MessageBox текст как раз копируемый (хотя его нельзя выделить курсором, просто Ctrl-C копирует его содержимое). Вот тут пример.

Так и работа с фиксированной зарплатой тоже разная бывает - где-то дикие переработки и авралы, а где-то расслабон и work-life balance, не вижу принципиального отличия в сравнении с "повремёнка/фиксированная зарплата".

Если они - единственный продавец билетов на концерт Вашей любимой группы, то выбора особо нет. Не все готовы ради бойкота одной дурацкой IT-компании лишать себя возможности посетить долгожданное мероприятие.

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

Так может всё правильно, это одна дорога с севера на юг (или с юга на север, как вам удобно), которую строят сразу в двух направлениях из середины.

Для знакового 64-битного целого максимальное число 9,223,372,036,854,775,807 - что даёт максимальную длину "телефонного номера" в 18 цифр (или 19 для беззнакового).

С одной стороны, кажется что "хватит всем" (с). С другой стороны, возьмём например 12-значный телефонный номер (быстрый гуглёж дал инфу про 10-значные номера в некоторых странах, например во Франции, но можно допустить что и 12-значный номер не невозможен).

А теперь представим, что мы храним корпоративный номер, и компания использует дополнительно две трёхзначные группы: три цифры для департамента/отдела, и ещё три - для конкретного сотрудника (это не значит, конечно, что у них миллион сотрудников, но мне такая схема не кажется невозможной).

И вот мы уже упёрлись в потолок - дальше только добавлять столбцы, или использовать какие-то ещё хаки, чтобы сохранить более длинный номер.

Не говоря уже о том, что номер может состоять не только из цифр:

  • Могут использоваться символы не из кодировки ASCII: например, в Египте для написания номеров зачастую используется арабский шрифт.

Так что Ваш совет, на мой взгляд, очень вредный. Лучше хранить номера как строки (а в отдельных случаях, как упомянуто в статье, наряду с нормализованным номером в другом столбце хранить его также и в исходном виде).

Хорошо, может быть именно профессиональных видеоблогеров, которые зарабатывают на жизнь этим занятием, не очень много (хотя, я думаю что речь скорее идёт о тысячах, а не о сотнях, в РФ).

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

Но с ростом благосостояния людей, которым уже не нужно "пахать" в поле или на заводе 12-часовые смены 6 дней в неделю, чтобы заработать на хлеб и немного масла, услуги, касающиеся развлечений или комфорта, становятся более востребованными, всё больше людей готовы платить за это. И представителей этих (и многих других в сфере услуг) профессий становится всё больше. Сфера услуг начинает превалировать над добывающим и производящим секторами в экономике развитой страны.

Вы не учитываете того, что эти 80% персонала перестанут потреблять другие товары и услуги, в других отраслях тоже пройдут сокращения и так по цепочке.

Я специально привёл гипотетический пример с числами (тысяча уволенных против сотен тысяч потребителей, которые экономят). То есть резкое и сильное снижение благосостояние первой группы, может быть, будет перевешено небольшим ростом благосостояния гораздо более многочисленной второй группы. Надо заметить, что современные производста и так уже имеют обычно высокую эффективность, то есть тысяча работников выпускают продукцию, которую потребляют десятки или сотни тысяч человек.

Удешевление тоже не моментальное - сначала снижение себестоимости должно коснуться всех фабрик сепулек без исключения, потом они должны начать конкурировать между собой. А еще рынок не должен быть монопольным и на нем не должно быть сговора между фабриками, что может гарантировать только государство.

Ещё раз - я специально подчеркнул в исходном комментарии, что снижение цены произойдёт скорее на конкурентном рынке (хотя и монополисту тоже, в некоторых ситуациях, может оказаться выгоднее снижать цены при снижении издержек, если спрос эластичен).

Ну и про "должно коснуться всех фабрик сепулек" я не понял аргумента: часть фабрик получает конкурентное преимущество, и снижают цены для увеличения своей доли рынка. Оставшиеся вынуждены догонять с внедрением инноваций, или разоряются (да, это может привести к монополизации и, как следствие, росту цен).

Но ИИ-то обещает затронуть массу областей одновременно, если его адепты не лукавят.

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

Всё верно - снижение издержек необязательно повлечёт снижение цены, в условиях монополии. Но в изначальном комментарии я указал именно на конкуренцию:

сокращение ФОТ (и как следствие себестоимости) в условиях конкуренции приведёт к снижению цен на продукцию, а потребители смогут сэкономить и позволить себе приобретать больше других благ

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

Но не надо забывать, что прогресс не только делает ненужными некоторые профессии, но и способствует созданию новых профессий и целых отраслей. Например, лет 30 назад не было такой профессии, как видеоблогер (по крайней мере, массовой). А теперь это уже заметная сфера, с немалыми оборотами в виде донатов, платных подписок и т.д. Развлекательные видеоролики стали важной частью повседневной жизни, и за этот контент люди готовы платить, так же как за еду или коммунальные услуги.

Так что эти "оставшиеся 90" тоже, вероятно, найдут себя в каких-то новых профессиях, о которых мы пока даже не догадываемся.

Здесь одно другому противоречит

Совершенно необязательно. Да, в гипотетической ситуации, когда в течение пары лет значительная часть профессий быстро заменяется роботами - это наверняка повлечёт кризис.

Но если процесс постепенный, то никакого противоречия нет: на фабрике по производству сепулек сократили 80% персонала (скажем, тысячу человек), сепульки стали стоить на 30% дешевле, и этой экономией пользуются десятки или сотни тысяч человек. Спустя какое-то время, эти уволенные работники находят новую работу, возможно с новой профессией... или не находят и остаются на пособии по безработице.

Но это уже зависит от общества и государства, какая поддержка по переквалификации будет оказана тем, кто оказался без работы.

Речь не о том, что суммарно произведённых благ не хватит на всех. Проблема в перераспределении этих благ между членами общества.

Сейчас, грубо говоря, распределение благ происходит на основе вклада людей в производство: люди получают зарплату, и обменивают её на блага; предприятия получают доход от реализации благ и часть дохода выплачивают в виде заработной платы. Да, государство вмешивается в процесс перераспределения благ, забирая часть этого дохода в виде налогов, и направляя его на обеспечение некоторых слоёв населения (в виде пенсий и пособий) и на производство общественных благ (строительство дорог, например), но всё же основные формы распределения сейчас - зарплата, рента и прибыль.

Если представить себе, что по ходу роста эффективности производства благ, сократится количество занятых в этом производстве, например предприятие по производству сепулек сократит численность работников с 1000 до всего 10 человек, эти 990 могут оказаться без средств к существованию, по крайней мере временно. И для них будет необходима поддержка, в виде ББД или субсидий на переобучение, например.

В целом, я смотрю скорее оптимистично на эту ситуацию: сокращение ФОТ (и как следствие себестоимости) в условиях конкуренции приведёт к снижению цен на продукцию, а потребители смогут сэкономить и позволить себе приобретать больше других благ (например, донатить тем самым 990 новоиспечённым видеоблогерам, к примеру). Возможно, стоит ждать появления новых профессий, особенно в сфере услуг и развлечений. Просто на то, чтобы перестроиться, потребуется некоторое время.

Проблемы возникнут в социальной напряжённости - эти люди хотят кушать. Не факт, что при высвобождении большого количества людей с ненужными профессиями, для всех них найдётся место в других востребованных сферах. Потребуется вмешательство государства, и возможно придётся перестраивать социально-экономическую модель (например, вводить безусловный базовый доход).

Не готов с Вами согласиться. Возможно, на этапе становления ядерной энергетики она действительно была "приложением" к гонке ядерных вооружений, но в настоящее время, насколько я понимаю, это уже очень далёкие друг от друга сферы. Тем более что типы реакторов могут быть разные (например, см. первую из указанных в предыдущем комменте ссылок, приложение 2 "Технологии ядерных реакторов"). Например, для реакторов на "тяжёлой воде" вообще не требуется обогащение топлива.

Возможно, получится узнать оценку по этому вопросу у более знающего человека @Nucl0id

Information

Rating
2,901-st
Registered
Activity