Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 December 04

А

Артем in NodeUA - JavaScript and Node.js in Ukraine
Уже раз 100 писал, но статическая типизация необходима лишь при условии плохой архитектуры приложения. (Если говорить о высокоуровневых ЯП)

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

А

Артем in NodeUA - JavaScript and Node.js in Ukraine
А вообще бэк — это те женщины на раздаче в столовой.
К ним приходит клиент и говорит "мне вот этот json-чик", после чего ему его отдают.
Мы уже начали абстрагировать наши роуты от бизнес-логики, ведь есть простые задачи, которые нужно просто решить.
А есть сложные задачи, которые требуют более глубокого понимания процессов.

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

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
При плохой архитектуре - статическая типизация превращается в ад)
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Что-то я не понял первое предложение
То есть если архитектура плохая, нужно тащить в неё статическую типизацию?
Или со статической типизацией люди в принципе с самого начала решают делать плохую архитектуру?
источник

А

Артем in NodeUA - JavaScript and Node.js in Ukraine
Статическая типизация позволяет меньше ошибаться и часто идет в комплекте со всякими структурами, интерфейсами и т.д., которые позволяют описать данные.

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

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
или одним из инструментов который поможет сохранить эту архитектуру при работе в команде
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
А в какой момент хорошая архитектура становится плохой? Или если архитектура с самого начала была хорошей, то плохой её уже не сделать?
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
А кто/что в такой "хорошей архитектуре" гарантирует, что в нужное место приходят нужные типы?
Разработчики перестают ошибаться или становятся внимательнее?
источник

А

Артем in NodeUA - JavaScript and Node.js in Ukraine
Я скорее имею в виду "плохая" — неудобная для работы с ней.
У каждого модуля своя архитектура, даже у каждой отдельной функции. Но важно лишь то, как это всё между собой взаимодействует и как просто мы можем добавить новый модуль для расширения функционала.

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

А

Артем in NodeUA - JavaScript and Node.js in Ukraine
В комментариях напиши "дам в ебучку, если сюда число закинешь" и этого достаточно
источник

АП

Алексей Попов... in NodeUA - JavaScript and Node.js in Ukraine
Так если бы использовался язык со статической типизацией, возможно, тебе было бы проще править этот баг?
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
или клиентам слать такие письма, если их действия вызвали баг в программе
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
"Переписать с нуля" - чащен всего дорого в никуда
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
будет новая вещь, с новыми багами
источник

А

Артем in NodeUA - JavaScript and Node.js in Ukraine
Да, я про тоже и говорю. Но проблема не в динамической типизации, а в говнокоде
источник

Y

Yevhen in NodeUA - JavaScript and Node.js in Ukraine
То есть, документация позволяет разработчикам не совершать ни одной ошибки и помогает обрабатывать все возможные ошибки?
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
У меня вот история есть, была программа, работала классно и написанна была классно, но на старых технологиях, а потом переписали её на современные и хорошие технологии, что в итоге всё стало на много хуже
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
и современные, хорошие технологии не спасли
источник

А

Артем in NodeUA - JavaScript and Node.js in Ukraine
Нет, просто если человек настолько туп, что не понимает "не суй пальцы в розетку", то возможно он выбрал не ту профессию.
источник

EK

Evgen K in NodeUA - JavaScript and Node.js in Ukraine
Лол, сильное заявление, кода люди научились измерять ум человека? я чтото пропустил это знаменательное событие
источник