LINUX.ORG.RU

Сообщения cccian

 

Qutim развернулся на весь экран. Как свернуть обратно?

Форум — Desktop

После нажатия на пункт full screen в меню окно растянулось на весь экран (как и задумано), а сам пункт пропал.

https://db.tt/yOVv6Gu4

как вернуть это дело обратно?

 , , ,

cccian
()

Как поддерживать много кода низкого качества?

Форум — Development

Накидайте ссылок или ткните носом в известные вам материалы по сабжу.

Дано: большой проект на поддержке и 1 разработчик.

Сам проект характеризуется следующими пунктами:

  • лапшеподобная архитектура
  • много копипаста
  • god objects
  • куча рафинированных сущностей
  • куча зависимостей - всё зависит от всего
  • и прочие анти-паттерны

одним словом, какашка.

Трудозатраты на создание аналога (если переписывать с нуля) - 10 человеко-лет. Бюджета на это нет.

Стоит задача - добавлять новые фичи и фиксить баги. Вопрос - как делать это с наименьшей попа-болью?

На рефакторинг, конечно же, руководство добра не даёт.

 , ,

cccian
()

Боль динамической типизации

Форум — Development

Всем привет.

Поделитесь продвинутыми методами поиска списка членов какой-либо произвольной переменной в языках типа python.

Кроме самых очевидных:

1. Документация - часто неполная или отсутствует

2. IDE - ОЧЕНЬ часто сама не может определить тип переменной для динамических языков.

3. Пристальный взгляд в код - поиск мест использования

Для себя использую следующие ламерские методы:

1. Параллельно пишу код в IDLE и делаю dir(something) - знаю, жесть.

2. Поставить breakpoint в дебаге и палить окошко watch - тоже жесть.

Есть ли какая-нибудь удобная тула для навигации по docstrings?

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

В качестве подтверждения попробуйте взять mechanize и определить, что есть в Browser.form. Лапшенавигирование по коду гарантировано.

 , , , ,

cccian
()

PEP 3107 — Function Annotations

Форум — Development

http://www.python.org/dev/peps/pep-3107/

Прочитал, удивился.

Зачем оно нужно? Выглядит как костыль для сглаживания недостатков из-за отсутствия статической типизации - эдакое предательство основ и перебежка в стан врага. Плюс «очередной стандарт» на документирование кода.

Питонисты, знающие хотя бы один статически типизированный язык, каково ваше мнение?

 , ,

cccian
()

Python vs Scala - съесть и не подавиться

Форум — Development

Java-программер.

Подбираю язык для быстрой разработки небольших приложений и скриптов.

Надоела джава, потому что:

- Boilerplate code

- Иногда язык слишком многословен

- Иногда слишком много XML.

- Для очень маленьких «одноразовых» приложений лениво поддерживать инфраструктуру проекта. Иногда хочется просто накидать 50 строк в файле и запустить.

Т.е. главные критерии при выборе

- меньше писать кода

- меньше ручных действий поддержку зависимостей

После некоторых раздумий взгляд пал на Python и Scala. Написал на каждом из них по небольшой утилите. Описываю мои сомнения по каждому из них.

Python:

- Version Hell. Python 2 vs 3. Неприятная неожиданность - значительная часть библиотек есть только для Python 2. Зарядил тулу на 3-ей версии, понадобилось подключить mechanize - фейл. Она только для 2-ой версии. Immunity Debugger завязан также на 2-ую версию. Вот так сразу наткнулся в первый день.

- Dependency Hell. Казалось бы, питон - кроссплатформенный. Но куча питоновских либ - это лишь обертки над сишными либами. Иногда их установка - тот ещё геморрой. Посмотрите сюда - http://www.lfd.uci.edu/~gohlke/pythonlibs/ - некоторые либы имеют до 10 инсталлеров под винду (жесть). Часто зависимости разруливаются руками. Посмотрите stackoverflow - часто поставить всё это месево - то ещё челендж.

Scala:

- Невнятная поддержка редакторами кода. Подцветка на Notepad++ и SublimeText начинает лажать, когда начинаешь использовать фичи вроде «„“ и т.д. Из IDE пробовал только Intellij IDEA + Scala plugin - часто не может сделать автокомплит.

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

- Интеграция с java отнюдь не бесшовная. Хочешь заюзать джава либу в скале - надо перевести джавовские коллекции в коллекции скалы. Чтобы можно было делать foreach, filter, map и т.д. Бойлерплейт же.

Какой ваш выбор в данной ситуации? Если питон - как боретесь с вышеописанными недостатками? Если скала - то же самый вопрос.

 , , ,

cccian
()

RSS подписка на новые темы