Это сеньорский код?
От: StandAlone  
Дата: 20.12.21 19:36
Оценка: 9 (1) -1
Возможно, тема для КСВ, если да прошу перенести.
Для начала создам здесь.
Недавно возникло некоторое недопонимание во взаимодействии на проекте. Код естественно под НДА, поэтому показываю очень близкий по стилю и смыслу.

Описание задачи:

Scales are a convenient abstraction for a fundamental task in visualization: mapping a dimension of abstract data to a visual representation. Although most often used for position-encoding quantitative data, such as mapping a measurement in meters to a position in pixels for dots in a scatterplot, scales can represent virtually any visual encoding, such as diverging colors, stroke widths, or symbol size. Scales can also be used with virtually any type of data, such as named categorical data or discrete data that requires sensible breaks.

For continuous quantitative data, you typically want a linear scale. (For time series data, a time scale.) If the distribution calls for it, consider transforming data using a power or log scale. A quantize scale may aid differentiation by rounding continuous data to a fixed set of discrete values; similarly, a quantile scale computes quantiles from a sample population, and a threshold scale allows you to specify arbitrary breaks in continuous data.

For discrete ordinal (ordered) or categorical (unordered) data, an ordinal scale specifies an explicit mapping from a set of data values to a corresponding set of visual attributes (such as colors). The related band and point scales are useful for position-encoding ordinal data, such as bars in a bar chart or dots in an categorical scatterplot.

Все довольно просто, никакого рокетсайенс.
Реализация
https://github.com/d3/d3-scale/blob/9fe496e6d708bf30435c15f03ab9e5ae994ea7be/src/continuous.js

function scale(x) {
    return (output || (output = piecewise(domain.map(transform), range, interpolate)))(+transform(clamp(x)));
  }

  scale.invert = function(y) {
    return clamp(+transform.invert((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));
  };


Код достался мне на поддержку. Автор доступен, но по поводу своего творения не может сказать ни слова, кроме общих предположений.
Я попытался выяснить, как такое вообще попало в мастер, в ответ услышал — "Этот человек выше чем сеньор, в подробном ревью не нуждается".
"Сеньор всех сеньоров"(с)habr.
Моя точка зрения — написать в одну строку с кучей побочных эффектов способен любой не острый стажер, а вот решить сложное просто, понятно и поддерживаемо как раз способен только опытный разработчик. Встретил полное непонимание.
От людей, которые модифицировали внешние переменные в теле Array.some(), игнорируя результат, и меняли элементы массива в Array.forEach(). Они же в условном button1Click лезли в базу(диспатчили редаксовские экшены) или на сервак прямым Http запросом, в результате код презентационных компонент содержит по 3-4-5-10 тысяч строк кода в попытке охватить треть логики всего UI одним компонентом.
Попытки объяснить, что это нежелательно, про LSP, трехзвенку или SOLID также встречаются полным непониманием.
Люди эти все, конечно, тимлиды и сеньоры, или даже сеньоры всех сеньоров. По происхождению, конечно, из html-программистов, тестировщиков и прочих активных пользователей хабра типа войтивайти. Возможно эти все части паззла как-то связаны.
Что скажет общество?
Как по вашему мнению, такая ситуация в сфере разработки ПО теперь нормальна?
Или это только во фронтенде?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.