ЙажаСценарий / Говнокод #23475 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
public do(action: 'un' | 're'): void {
    const result = (<any>this._appApi.app.documentManager.current)[action + 'do']();
    if (!result.success) this._toastService.error(result.errorMessage, `Ошибка ${action}do`);
}

 <button (click)="do('un')" title="Отменить"><i class="material-icons md-36">undo</i></button>
 <button (click)="do('re')" title="Повторить"><i class="material-icons md-36">redo</i></button>

Запостил: mazhuravlev mazhuravlev, (Updated )

Комментарии (51) RSS

    • Согласен. Вообще, питушня какая-то.
      mazhuravlev, это такой ECMAScript стал в 2017?
      Ответить
        • И как тайпскрипт, кстати? Стоит углубляться?
          Как они прикручивают статическую типизацию ко всякой хрени типа jquery?
          Ответить
          • Обязательно стоит хотя бы попробовать, правда можно подсесть, особенно если использовать редакторы, которые поддерживают автокомплит и статический анализ, типа WebStorm.
            Со сторонними библиотеками несколько путей: могут уже существовать определения типов для популярной библиотеки, здесь например: https://www.npmjs.com/~types, можно написать определения самостоятельно, и еще есть вариант просто задекларировать переменную, в которой лежит библиотека, если она подключается глобально, как any, это так сказать выход в js, у any него не проверятся ничего. Пишем declare let jquery: any; и делаем с ним, что хотим.
            Ответить
            • > определения типов для популярной библиотеки
              красивое решение
              Ответить
              • Решение хуевое, это как если бы я писал .c файлы, а ты для них писал бы .h файлы.
                Но выбора-то нет: хочешь стат типизации -- пиши скелетики
                Ответить
                • Если сразу на TS писать, скелетики не нужны, и чтобы просто использовать библиотеки, не нужны, объявляем как any и погнали. Был еще флаг в tsconfig, который давал подключать прям js файлы, может и сейчас есть.
                  Ответить
                  • "если сразу писать" то да.

                    Я понимаю что TS лучше чем JS, понимаю что статическая типизация и WebStorm сильно упрощают программирование (с js webstorm почти не помогает)
                    Ответить
                • > как если бы я писал .c файлы, а ты для них писал бы .h файлы
                  Это всё же лучше, чем мне писать и .c, и .h. Мне бы пришлось постоянно следить не только за скелетиками, но и за логикой - либо копировать куски кода при каждом обновлении библиотеки (реализация в библиотеках меняется чаще, чем интерфейсы), либо всё это реализовывать самому с нуля.
                  Хоть какое-то переиспользование.
                  Ответить
                  • >>Это всё же лучше, чем мне писать и .c, и .h. Мне бы пришлось постоянно следить не только за
                    Ну, обычно это делает IDE:) Писатели на С, C++ и ObjectiveC так именно и живут.
                    Ответить
                    • как писатель на с++, заявляю, что иде - для ламеров и формошлепов
                      Ответить
                      • Да ну... размен пары-тройки гигов оперативки на няшную подсветку опечаток, имхо, вполне окупается.
                        Ответить
                        • а так же на рефакторинги, файнд юзаджи и генерацию бойлерплейта
                          Ответить
                          • > файнд юзаджи
                            Компилятор найдет.

                            > рефакторинги
                            Search&replace порефакторит.

                            > генерацию бойлерплейта
                            Расслабляет и дает голове отдохнуть.
                            Ответить
                            • >>Компилятор найдет.
                              Особенно это удобно когда тебе надо посмотреть "кто еще использует метод".

                              >>Search&replace порефакторит.
                              Особенно метод с именем getName()

                              >>Расслабляет и дает голове отдохнуть.
                              Лучше сделать зарядку.
                              На самом деле с IDE есть одна проблема: она упрощает написание ГОВНА.

                              Когда ты пишешь в редакторе (да еще и на скриптовом япе, лол!) ты просто вынужден держать в башке примерную архитектуру и писать внятную доку тоже должен.

                              А когда у тебя есть IDE то начинается "ой, я не знаю как это работает, поищи использования и сделай аналогично, посмотри по коду, подебажь, итд"
                              Ответить
                              • >> Search&replace порефакторит.
                                > Особенно метод с именем getName()
                                Просмотр каждого изменения решит этот вопрос. Сначала поиск и замена по одному вхождению, чтобы убедиться, что в этом месте действительно нужна была замены; потом повторный поиск и просмотр всех вхождений, чтобы убедиться, что (а) заменено всё, что надо (б) заменено как надо.

                                Например, у аргумента функции f сменился тип. В некоторых местах надо заменить f(x) на f(T'(x)), а в некоторых - оставить как есть, т.к. в функцию, вызвавшую f уже передали новый T' вместо старого T. Компилятору оставлять такое не стоит - мало ли, какие там неявные касты могут быть (преобразования между 6 типами в JS и практически бесконечностью типов в C++)
                                Рефакторить - так рефакторить, а не просто имена менять.
                                Ответить
                                • Смена имени вполне себе валидный рефакторинг, равно как добавление нового параметра.

                                  Не вижу смысла ходить в 28 мест и везде менять A и A'.

                                  Если ЯП стат типизирован то компьютер может решить эту задачу, а раз может -- пусть решает.

                                  Но это относится только к стат типизации конечно. В твоем JavaScript все равно придется проверить руками все места (ну или положиться на покрытие тестами) и потому для JS IDE нужен куда в меньшей степени. А может и вообще не нужен
                                  Ответить
                                  • > Если ЯП стат типизирован то компьютер может решить эту задачу, а раз может -- пусть решает.
                                    Компилятор имеет возможность в идеальном случае, да.
                                    Но я же говорю, неявные касты портят картину.
                                    К тому же, пройти прокликать все ошибки и поискать все вызовы f - занятие почти эквивалентное. К тому же, если запустить компилятор до того, как некоторые функции, вызывающие f, перевели на T', он укажет на эти места, но менять там ничего не надо.

                                    > для JS IDE нужен куда в меньшей степени. А может и вообще не нужен
                                    Как минимум, питушня, подсказывающая имена сущностей, здесь полезна.
                                    Ответить
                                    • Конечно он не поможет с ручными кастами, рефлесией в жаба/c# итд.
                                      Ну всё таки в 80% он поможет и сэкономит время.

                                      JS просто трудно обычно статически хоть как-то анализировать, и потому WebStorm показывает все, известные ему символы:)
                                      Ответить
                                      • > Ну всё таки в 80% он поможет и сэкономит время.
                                        Всё так. Жаль только, что уйдёт это время на отладку какой-нибудь нехорошей питушни. Всё тлен.
                                        Ответить
                        • Это если компьютер мощный и терпение есть. Вот лично я не стал поклонником 3D-игр, потому использую компьютеры умеренной мощности, но в то же время не привык ждать и распивать чаи, пока игра изволит загрузиться. Для меня три секунды - это уже довольно много. А когда M$V$ уже намного после загрузки тратит секунды на какие-то странные операции, не давая просто файл открыть, появляется желание выкинуть её.
                          По сравнению с текстовым редактором, который за то же время успевает открыться, открыть пачку открытых в прошлой сессии файлов, подсветить весь синтаксис и отзывчиво ждать пользовательского ввода, это ад.
                          Текстовый редактор делает практически всё то же самое, только позволяет экономить время пользователя, ресурсы ПК. И вентилятором не шумит.
                          Ответить
                          • Разумеется, IDE нужен более мощный CPU и больше памяти чем Notepad++.

                            >>Текстовый редактор делает практически всё то же самое
                            Ну это же не правда. VS с R# делают
                            1) код комплишен
                            2) рефакторинги
                            3) инспекции (это правда помогает отлавливать оишбки, особенно в сях)
                            4) реформат кода и удаление ненужных импортов
                            5) нафигацию (контрол клик на имени)
                            6) подсветку упавших в CI тестов
                            Да много чего


                            зы: Но я знаю что есть люди, которые не юзают Intellij, VS и Eclipse ровно потому что он грузится у них три минуты.

                            Ксатти, у VS есть VS Code: этопросто редактор
                            Ответить
                            • > Да много чего
                              Такое ощущение, что делают они всё это одновременно для всех файлов на моём ПК, и ещё в интернеты лезут докачивать исходники, с которыми тоже надо поработать.
                              Как с бесплатной медициной и т.п.: ты этим можешь не пользоваться, но налоги платить будешь. Ты не жмёшь "рефакторинг" или "реформат", а IDE всё равно внутри что-то считает и греет процессор в надежде выдать закэшированный результат за 0.01мс, когда ты наконец нажмёшь на кнопку. IDE умудряется тормозить даже в тех местах, где просто невозможно тормозить.

                              > Ну это же не правда
                              Правда. По крайней мере, notepad++ делает быстрее IDE то, что делает notepad++.
                              Ответить
                              • Ну тут уж тебе решать: готов ты платить ресурсами за реформат, или не готов.
                                К счастью, у тебя есть выбор.:)
                                Ответить
                                • Я бы предпочёл просто отключение некоторых возможностей, может быть даже их отсутствие на жёстком диске.
                                  Смотришь на размер студии с отключёнными в установщике галочками и осознаёшь, что будущее наступило. Копируешь Eclipse, а там тысячи каких-то файлов медленно плетутся из папки в папку.
                                  Оставить бы, скажем, 100МБ на диске, менюшку из меньшего количества пунктов, панельку только одну и фичи только те, которые нужны.

                                  А то предлагают либо велосипед купить, либо самосвал.
                                  Ответить
                                      • > для JavaScript/
                                        QML - тот же экмаскрипт. Так что как минимум подсветка там есть. Х.з. как с отладкой, автодополнением и рефакторингом, я особо с QML не работал.
                                        Ответить
                      • только семь раз писать руками одно и тоже, только хардкор!!
                        Ответить
                    • IDE регулярно ходит на гитхаб, проверяя изменения в переписываемой библиотеке и громко пищит, когда в *.c добавили что-то новое?
                      Ответить
                      • IDE смотрит чтобы у тебя локально .c (а так же .m и .cpp) файлы имели те же дефиниции, что и декларации в .h файлах
                        Ответить
                        • Фича полезная. Но если возвращаться к TypeScript, маловероятно, что такое поможет с переписыванием библиотеки на другой язык.
                          Ответить

Добавить комментарий

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8