All streams
Search
Write a publication
Pull to refresh
-6
0.1
Send message

No Code - это негибко. Зачастую, проще написать какую-нибудь библиотеку, покрыть её тестами. а потом реализовывать бизнес требования в пару строк кода. Бизнес пользователи генерирующие бизнес правила, должны четко ставить задачу. А программист быстро превращать это в код.

А ещё можно обучить непрограммистов формату json (некоторым конструкциям js, markdown в зависимости от задачи) и писать конфиги на нем. Можно даже написать инструмент который визуализирует эту json-конфигурацию (проще чем писать визуальный редактор). Главное, что бы ядром был исходный текст.

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

Это киллер фича, которая обязывает инициализировать указанные свойства в DTO.

Казалось бы есть конструктор для этого, но систаксис с инициализатором свойств намного удобнее. Это ещё один шаг в борьбе с NullReferreceException.

https://github.com/dotnet/csharplang/blob/main/proposals/required-members.md

https://github.com/dotnet/csharplang/issues/3630

И в догонку Simplified parameters null validation. Которое гарантирует null-безапасность и пишет бойлерплейт за вас.

// Before
void Insert(string s) {
  if (s is null)
    throw new ArgumentNullException(nameof(s));
  ...
}

// After
void Insert(string s!) {
  ...
}

https://github.com/dotnet/csharplang/issues/2145

Required properties не добавили, расходимся.

Идея и реализация замечательная. Однако не работает на Android Firefox с тачем. Наверняка нужно подписать на какие-то touch-события вдобавок к событиям мыши.

12 ...
10

Information

Rating
3,104-th
Registered
Activity