Автор оригинала: FreeCodeCapm Team.
Полу коэн
В течение десяти лет мой главный «родной язык» был C #. Я использовал его с версии 1, и любил путешествие по таким функциям, таким как дженерики, анонимность, LINQ и ASYNC и объединение этого с шаблонами дизайна, твердыми принципами, архитектурными стилями и TDD/BDD, я сейчас живу и дышу C #. Я привык снобизливо смотреть на языки сценариев …
Как вы можете назвать себя инженером программного обеспечения и использовать язык сценариев? Дох!
Я работаю в финансовой организации в городе. Языки выбора были Java и C #, как для приложений переднего и заднего офиса. Наука и оборудование для науки и машины становятся двумя из самых рассеиваемых современных технологий, и теперь они также масштабируются в финансовых учреждениях. Как мой фон в информатике (с моей диссертацией по добыче данных и искусственному интеллекту), я думал, я должен проверить это …
Я должен был обновить свои знания по математике, а после Вводные ML на PluralSight и другой на Python Я не понял, какова вся суета.
Зачем использовать Python? Я могу сделать все эти вещи в C # … и на самом деле намного лучше!
Я с гордостью сказал моим коллеге: «Я не« коварщик ковбоя »… вы не можете написать солидное приложение Python». И он сказал: «Почему нет? Твердые являются только принципами. Вы можете применить их на любом языке».
Это было глазное открытие для меня.
Я начал исследовать Python: он находится на трех лучших языках программирования (по отношению к декабря 2018 года) Согласно Tiobe Отказ Stackoverflow подтверждает, что Это превзошло C # Отказ Так что HackeRrank отчет Отказ
Какие? Я скучаю по трюке?
Вот как началось мое путешествие, чтобы стать питонистом … Я должен был быть убежден, что это было стоить.
Вот ответы на два моих основных бронирования, то есть.
- Я люблю свою карьеру в финансовом секторе. Что делает финансовые организации использовать Python?
- Я не «ковбой» (скорее «пастушка»). Применяют ли прочные принципы в Python?
Почему финансовые организации используют Python?
Мое исследование показало мне несколько причин:
– быстрое время на рынке: Вы можете пойти «от нуля до героя» довольно быстро. Есть богатый набор библиотек, которые имеют почти все, что вы когда-либо будете использовать. Письменные программы Python подобны строить башню с LEGO. Вы можете найти отдельные блоки и все, что вам нужно сделать, – это приклеить их вместе, чтобы создать свой алгоритм.
– Экономика мостов и это: Клансы и технические бизнес-люди могут понять, а также писать свои алгоритмы в Python. Затем разработчики могут интегрировать его в полное приложение стека.
– Охватывает анализ: Anaconda поставляется с установкой ноутбука Jupyter. Это вся игровая площадка ученого и данных разработчика и данных для анализа данных и создания визуализации. Торговля, рыночные цены, моделирование финансового риска – некоторые применимые области.
Применяют ли прочные принципы в Python?
Да – они делают! Принципы не конец сами по себе. Скорее, они являются руководящими принципоми для записи лучшего и более чистого кода. Тем не менее, нет серебряной пули при нанесении их на функциональные/динамические языки.
Тем не менее, вот то, что я придумал:
– Одиночная ответственность: Класс должен иметь только одну причину для изменения.
Это довольно быстро, просто собрать вместе функции, которые изменяются по той же причине в один класс/метод/сущность. Так же, как C #.
– Открыть закрытое: Классы должны быть открыты для расширения и закрыты для модификации. Базовый/абстрактный класс закрыт для модификации. Бетонные подклассы созданы для изменения их поведения.
Многие способы достижения этого включают в себя: наследование, композицию, узоры дизайна (декоратор, стратегия и т. Д.). Python позволяет нескольким наследственным классам, кроме того, это так же, как C #.
– Лисков замена: Если S представляет собой подтип т, то объекты типа T могут быть заменены объектами типа S, не изменяя любые желаемые свойства T. Другими словами, полученный класс должен расширить свой родительский класс без изменения его поведения.
Пока вы можете отличить разницу между составом и наследством, а затем ваш дядя Боба. Также помните о пропитании обезьян, так как это, безусловно, наверняка нарушает этот принцип.
– сегрегация интерфейса: Клиенты не должны быть вынуждены зависеть от интерфейсов, которые они не используют.
В Python нет интерфейсов, поэтому это не слишком актуально. Но вообще это все о сохранении классов и открытых методов к минимуму, а также способность наследовать из нескольких бетонных классов, чтобы предоставить клиентам конкретные поведения.
– Инверсия зависимости: Модули высокого уровня не должны зависеть от модулей низкоуровневых. Оба должны зависеть от абстракций. Абстракции не должны зависеть от деталей – детали должны зависеть от абстракций.
Как динамический язык, Python не требует использования абстракций для облегчения развязки.
То, что я надеялся найти, когда я начал этот анализ, состоит в том, что C # выигрывает «Языковая битва» над Python, но я понял, что это плохом программирутелю, набор инструментов разработки которого содержится только один язык программирования!
Я бы лично использовал C #, чтобы построить большие масштабы, корпоративное приложение (особенно на стороне сервера), но я полностью преобразую в Python для более быстрого развития и доказательства концепций – преимущественно, когда речь идет о доменах науки о данных или учить машину!
Спасибо за чтение моей первой статьи?