The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Instagram открыл код MonkeyType, системы аннотации типов для..., opennews (??), 22-Дек-17, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


11. "Instagram открыл код MonkeyType, системы аннотации типов для..."  +/
Сообщение от Undefined (?), 22-Дек-17, 14:25 
"Ломание кода" - проблема организации процесса разработки, а не языков. Нужны юнит-тесты, ревью, документация, культура какая-то.

Алсо вангую, опять сейчас начнут путать статическую типизацию со строгой. В Питоне, в отличие от того же JS, нельзя, грубо говоря, сложить теплое с мягким. Данные должны быть одного типа, приведены в явном виде, если потребуется.

Ответить | Правка | Наверх | Cообщить модератору

18. "Instagram открыл код MonkeyType, системы аннотации типов для..."  +10 +/
Сообщение от Crazy Alex (ok), 22-Дек-17, 16:20 
1) Баг, пойманный на ревью или тестами всё ещё дороже бага, пойманного на этвпе компиляции - на него времени больше потрачено
2) Типы - это гарантированно верная документация кода. И это упрощает сопровождение.
Ответить | Правка | Наверх | Cообщить модератору

22. "Instagram открыл код MonkeyType, системы аннотации типов для..."  –1 +/
Сообщение от Аноним (-), 22-Дек-17, 16:45 
если вы позволяете разработчику публиковать код для review до того как пройдут хотя бы базовые тесты - мне вас жаль.
Искренне жаль.
Ответить | Правка | Наверх | Cообщить модератору

41. "Instagram открыл код MonkeyType, системы аннотации типов для..."  +5 +/
Сообщение от Crazy Alex (ok), 22-Дек-17, 19:24 
Это вам примерещилось что-то.

1) для динамики приходится писать больше тестов для покрытия вот этих глупых кейсов с типами. Это время на написание и поддержку. И на то, чтобы в ревью ещё и этот аспект отсмотреть.
2) теоретически юнит-тесты, конечно, должны быть быстрыми, но на практике они частенько ни хрена не быстрые, и времени на их прогон у разработчика уходит прилично, ещё до CI.
3) система типов перекрывает проблемы с типами гораздо надёжнее и не умеет "случайно пропустить" какой-то случай.

Ответить | Правка | Наверх | Cообщить модератору

27. "Instagram открыл код MonkeyType, системы аннотации типов для..."  +2 +/
Сообщение от M i Memail (?), 22-Дек-17, 17:28 
> В Питоне, в отличие от того же JS, нельзя, грубо говоря, сложить теплое с мягким.
> Данные должны быть одного типа, приведены в явном виде, если потребуется.

Можно. Например так:

$ cat warm_plus_soft.py
class Warm(object):
    def __init__(self, temperature):
        self.temperature = temperature

    def __add__(self, other):
        if isinstance(other, Soft):
            return Body(self.temperature, other.softness)
        raise TypeError()


class Soft(object):
    def __init__(self, softness):
        self.softness = softness


class Body(Warm, Soft):
    def __init__(self, temperature, softness):
        Warm.__init__(self, temperature)
        Soft.__init__(self, softness)

    def __add__(self, other):
        raise NotImplementedError()

    def __str__(self):
        return 'Body: temperature — {}, softness — {}'.format(
            self.temperature, self.softness
        )


if __name__ == '__main__':
    warm = Warm(100)
    soft = Soft(500)
    body = warm + soft
    print(body)

$ python3 warm_plus_soft.py
Body: temperature — 100, softness — 500

Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

52. "Instagram открыл код MonkeyType, системы аннотации типов для..."  +/
Сообщение от Аноним (-), 22-Дек-17, 21:46 
Ох лол. Если предусмотреть возможность сложения тёплого с мягким, то конечно можно.
Ответить | Правка | Наверх | Cообщить модератору

97. "Instagram открыл код MonkeyType, системы аннотации типов для..."  +/
Сообщение от анонимбр (?), 23-Дек-17, 20:14 
Можно, но не нужно изобретать квадратные колеса
Ответить | Правка | К родителю #27 | Наверх | Cообщить модератору

49. "Instagram открыл код MonkeyType, системы аннотации типов для..."  +2 +/
Сообщение от qsdg (ok), 22-Дек-17, 21:07 
> Нужны юнит-тесты, ревью, документация, культура какая-то.

Работал я как-то на большом и нагруженном питон-проекте. В итоге дошло до того что каждая, абсолютно каждая строчка должна была быть покрыта юнит-тестами, иначе именно в ней всё обвалится. Соотношение строчек тесты/код у нас было больше единицы. И знаете, мы-таки заколебались поддерживать эти юнит тесты!

Потом нам выделили ресурсы переписать всё на Жабе, там много всего было, конечно, но соотношение строчек тестов/кода упало до 0.8 или типа того. Мы наконец перестали покрывать тестами синтаксис вместо логики.

Компания большая, силиконовая, всем известная, культура кода и ревью на высоком уровне, так что это не играло роли.

Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

96. "Instagram открыл код MonkeyType, системы аннотации типов для..."  +/
Сообщение от анонимбр (?), 23-Дек-17, 20:13 
Вот и мне это осточертело. Плюс для автодополнения в IDE все равно нужен тип, но через ()().
"""
:type val:путь к классу
"""
На Java добро не дают:(
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру