Ремесло программиста

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Ремесло программиста » Общие вопросы по языкам программирования » Почему сторонники жёсткой типизации выбирают одиночную разработку.


Почему сторонники жёсткой типизации выбирают одиночную разработку.

Сообщений 31 страница 37 из 37

31

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

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

Надо с самого начала внедрять. Покрытие уже готового старого года юнит-тестами - это адский труд.


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

32

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

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

33

Павиа написал(а):

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

utkin написал(а):

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

Загуглите хотя бы про продукты JetBrains, какой-нибудь PHP-storm.

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

Единственный способ более-менее убедиться, что твои изменения ничего не поломали - это запустить компиляцию  :rofl:

34

Загуглите хотя бы про продукты JetBrains, какой-нибудь PHP-storm.

Механически переименовать переменную в коде программы можно и в Блокноте. Рефакторинг предполагает немного больше.

Единственный способ более-менее убедиться, что твои изменения ничего не поломали - это запустить компиляцию

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

35

utkin написал(а):

Механически переименовать переменную в коде программы

При чём здесь переименование переменной?

utkin написал(а):

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

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

36

При чём здесь переименование переменной?

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

37

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


Вы здесь » Ремесло программиста » Общие вопросы по языкам программирования » Почему сторонники жёсткой типизации выбирают одиночную разработку.