Press "Enter" to skip to content

Straight-line code over functions — FunFunFunction #3


в понедельник поприветствует новый эпизод
веселой функции сегодня мы идем
говорить о значении прямой линии
код над функциями, ломающимися в строке
код в функцию очень
мощный инструмент и потому что функции
такой мощный инструмент, который они, как правило,
много использовал
Я вижу, как люди используют их, даже когда они
не нужно, и это фактически снижает
качество кода , и это
о чем мы будем говорить сегодня
то, что вы смотрите здесь, — это некоторые
код из фактического проекта, в котором я был
участие в некоторых именованиях было
изменен, чтобы защитить невиновность и
этот процесс я сделал ошибку точно
что этот код делает, не важно, но
важно то, что это ручки
ключевое событие для прессы, я выясняю письмо
вот тогда он выясняет, что прокрутка
контейнер — это немного волшебство здесь
если он имеет только один небольшой контейнер,
захватывает этот прокручиваемый контейнер и прочее
вот так, и если он найдет свиток
контейнер будет найти родитель из
прокрутка контейнера извлекает URI из
что, и если URI действителен,
испускать запрос перехода на букву e
Отправка так интуитивно, что мне кажется, что я
должны делать что — то с этим кодом
комментариев нет, и это всего лишь один
большая функция , которая делает совсем немного
вещи, и это то, что произошло в этом
проекта, мы чувствовали, что это
и это один блок, чтобы они могли
вероятно, разбить на два отдельных
таких функций
так что это одно и то же в случае нажатия клавиши
за исключением того, что мы вырвались
прокрутите контейнерный блок сюда в
функция прокрутки контейнера — это то же самое
за исключением того, что он находится внутри функции и
мы также нарушили другую логику
в список буквенного прыжка, и он находится в
здесь мне кажется, что мы добавляем
Здесь чувствуется, что мы добавили
бит документации , назвав эти
блоки как функции, похоже, мы
разделились и победили здесь
чувствует, что мы нарушили проблему
событие onkeypress на две вещи
получение контейнера прокрутки и меча
это буквенный прыжок, он также чувствует, что мы
сделали код более читаемым, потому что
в то время как мы просто получаем контейнер прокрутки и
тогда, если у нас есть контейнер прокрутки, мы делаем
список сортировки
буквенный прыжок Я имею в виду это немного
код, я имею в виду, это намного более читаемый
чем все это правильно, это действительно
чувствует, что мы делаем хорошую вещь
здесь , но когда вы проводите немного
думая об этом, оказывается, что мы
не будем говорить о первом чувстве
что у нас были такие функции, как
вы документируете код, смотрящий на
исходный код, который мы приняли
блок здесь и в варианте с
здесь мы дали
это имя имеет право получить прокрутку контейнера и
это похоже на то, что мы правильно
создали эту часть кода
это мы сказали в будущем
программы или что-то в этом роде
мы действительно добавляем что-то, делая
это в функцию
не могли бы мы просто сделать что-то
как это возможно
да свиток и по сей день что-то
как будто я не знаю, что я часто слышу
программисты говорят, что хороший код должен быть
мягкое документирование, и вы не должны использовать
слишком много комментариев, но когда дело доходит
к этому комментарию, как это, это действительно
то же самое, что и делать это
что это функция на самом деле
дать вам какой — либо безопасности у вас есть
просто по существу написал комментарий
людей не любят такие комментарии
потому что они, как правило, устаревают и покупают
черствый Я имею в виду, как вы могли бы добавить некоторые
код, который будет делать новые вещи и
это описание больше не будет
Точно, но дело в том, что вы
все еще есть эта проблема с
также, если я добавлю новый код здесь
что делает вещи, которые не вписываются в
имя функции надеемся, что
документация комментария функция
комментарии или что вы хотите звонить
этот вид шаблона будет по-прежнему устаревать
хорошо, может быть, это не добавляет много
условия документации, но как насчет
деление поколение на разрыв получить свиток
контейнеры и разбивка списков сортировки
письмо выскочить мы разобьем
проблемы на две части, и теперь мы можем
разум о них независимо прав
Ну не совсем
просто потому, что вы переместили код с одного
место для другого не означает
что вы отделили проблему I
существуют такие функции, как
экземпляр просто взгляните на два строчных буквы здесь
как шесть, взяв нитку и делая
это строчный регистр, который является очень четким
и общая проблема, которую мы бы не
извлечь выгоду из наличия в очереди
это еще только путало нас
Контейнер прокрутки очень специфичен для
проблема, которую мы здесь решаем
не могут попасть в контейнер для прокрутки и
причина об этой проблеме полностью
независимо от того, что происходит в
при нажатии клавиш или состоянии
в целом вы могли бы это сделать
когда вы писались в нижнем регистре, но
вы не можете этого сделать с помощью прокрутки
контейнер это это просто
иллюзия разделения это не
фактическое разделение проблем, которые у вас есть
фактически не отделили эти функции
от всего ничего, поэтому, возможно, у нас нет
действительно сломал проблему, но как сделать
мы сделали это более читаемым, я имею в виду, что это
так легко следовать за ним,
и затем, если он имеет
контейнер прокрутки, он выполняет сортировку по меньшей мере
мало работы хорошо нет, не очень
если другой программист читает это
потому что они для некоторых
разум, пытающийся выяснить, что
черт возьми, это происходит при таком
высокий уровень абстракции ,
вероятно, не будет очень полезен для
их, чтобы им пришлось погрузиться в них
поэтому программисту придется
получить прокрутку контейнера и прочитать здесь и
то мы имеем в порядок , так что есть
селектор, и они должны выяснить , что
что селектор приходит оттуда хорошо это
возвращает контейнер прокрутки, тогда у вас есть
вернуться сюда, а затем прокрутить
содержать в порядке, он называет кожу без костей
прыжок, тогда я должен найти эту функцию
здесь внизу и читайте здесь здесь.
здесь здесь здесь сравнить это к
прямолинейную функцию, которую мы имели
перед рефакторингом здесь мы можем
просто прочитайте код сверху донизу
и посмотреть, что происходит
пока события отправки не будут отправлены
гораздо легче рассуждать об этом
прыгать туда- сюда
на самом деле слово , что это называется
косвенность, которую вы, возможно, слышали
в контексте слоев косвенности
и на что ссылается косвенное
компьютерная наука заключается в том, что вы
значение вместо ссылки вместо
ссылаясь на это сразу, пример
были бы разбитыми функциями, которые
здесь мы ссылаемся на этот кодовый блок
но также могут быть такими переменными, как
этот селектор здесь, что мы сломались
и я думаю, что лично
Я имею в виду, что селектор используется в двух экземплярах
здесь, но я чувствую себя всего лишь двумя примерами
переменной сомнительно вырваться
потому что человек, читающий это, будет
должны прыгать назад, и я думаю, что это
может быть более читабельным и
поддерживаемый код, просто вставляя его
может повредить вам немного , что есть
дублирование, которое вы знаете, и дублирование
как правило, плохо, потому что это означает, что если
вы должны изменить свою систему, тогда вы
должны изменить его в двух местах, но с
такая замена в этом случае, когда это
всего два случая, это не так сложно
действительно, и мы получили много
читаемость , делая это очень много
более простой код, чтобы следовать, если селектор
был использован в десяти разных местах по всему
приложение, а не только эта функция I
действительно будет по-другому ощущать это
но в этом случае я чувствую себя как дублирование
это намного лучше , чем выбор
косвенность, наконец, еще одна тонкая
проблема , которую я хотел бы поговорить о
это тот факт, что нарушение
в функции делает его немного сложнее для
разработчик, чтобы удалить код из вашего
проект и код удаления очень хороши
потому что, как я говорил
прежде чем меньше кода в косых пятнах, так что
я имею в виду, когда говорю, что это становится сложнее
хорошо удалять в этом случае я
просто написал, чтобы получить контейнер прокрутки
легко быть для меня причиной
это
и это очень мало, но со временем я
забыть о keypress будет больше и
новые программисты могут войти в проект
и получить контейнер прокрутки будет просто
очень маленький вызов функции в этом большом
проект сейчас, если кто-то хочет изменить
код, связанный с получением контейнера прокрутки
Я хочу удалить звонок или, возможно, изменить
логика внутри него теперь должна
делать расследование , чтобы выяснить , если иное
фрагменты кода используют свиток get
контейнер не поймите меня неправильно здесь Я
не говоря, что вы никогда не должны ломаться
вещи в функции, но вам нужно
чтобы быть в курсе , что есть техническое обслуживание
стоить делать это, когда вы это делаете
он должен добавить большую ценность для смещения
это стоит, поэтому давайте немного переиграем
вещи в такие функции, как
слой косвенности слоя
Косвенные может быть плохим или
Хорошо, в этом случае я бы сказал, что
это плохо, что это действительно
не добавляет ничего, что нельзя сказать
это направление всегда плохое
это очень приятно иметь в направленном коде
например, в нижнем регистре, это очень
хорошо не должны думать о
внедрение нижнего кожуха на
когда мы решаем полностью
другая проблема и причина, которая
приятно, потому что это очень маленький и
хорошо определенную проблему, а также очень
общая проблема, которая полностью
отдельно от того, что мы пытаемся
в настоящий момент
из контейнера get scroll, который
вовсе не родовое вовсе не
четко определенными и совсем не малыми и
это определенно связаны с тем, что мы
делая это, мы хотим, чтобы под рукой мы
не хотите косвенно , если вы
косвенное что-то вроде get scroll
контейнер , который вы должны рассуждать о
программист, который должен рассуждать и
понять свой код
нам нужно идти вверх и вниз и обратно
и далее в коде , и это плохо так
мораль этой истории будет немного больше
ограничивающий добавление слоев
косвенность, и это важно
потому что он будет чувствовать, что вы добавляете
независимо от того, вы или нет
так убедитесь , что вы
второе предположение о вашей интуиции сегодня
видео было вдохновлено сегментом в
поговорить Джонатан Удар разработчиком
так что если вы нашли эту идею
интригуя, вы должны проверить, что
Я связал это в шоу
описание Я тот, кто делает
здесь, но это ваше шоу так в
Чтобы сделать хорошее шоу, мне нужно знать
кого вы так любезно представите
в комментариях ниже скажите мне, что
программиста, которым вы являетесь сегодня, и как вы
хотел бы улучшить вас, просто
смотрел эпизод веселой функции
забава для функции — еженедельное шоу, где
мы стараемся стать более уверенными и
волнует программирование, исследуя
дикие идеи всю мудрость и веселиться
говоря об улучшении , не пропустите
следующий эпизод подписывается ниже или
следуйте за мной на твиттере в MP Jamie, пока
следующий понедельник останется любопытным
Please follow and like us:

Be First to Comment

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