Press "Enter" to skip to content

Separation of concerns RANT — MPJ’s Musings — FunFunFunction #47


хорошее утро в понедельник, я mpj, и вы
наблюдая забавную функцию, поэтому сегодня мы
собирается сделать два и APUs задолжали нашим
мы едем, я прошу людей прислать меня
вопросы по twitter мой твиттер
счет где-то здесь MP Jamie so
люди прислали мне несколько вопросов, и я
будет отвечать на них хорошо это один по
Хуан Мартинес, что вы думаете о
все-в Иак тенденции CSS и HTML в
JavaScript ха-ха- а-а, мы, мы не
собираюсь сделать эпизод Q & A больше этого
Я чувствую, что это будет
разделение ответственности разглагольствовать для
люди , которые не могут быть знакомы с
это ах было несколько лет назад
Релиз Facebook реагирует, и что они
начал с реагированием, что было очень
спорный в то время и много
людей, которые не реагировали, заключалось в том, что они
смешанный HTML и JavaScript в том же
файл и сказать, что это нормально смешивать
HTML и и и JavaScript в одном и том же
файл, который в то время был похож на
говоря , что земля круглая обратно
время, когда люди считали
люди были тем, что, черт возьми, это ты
сумасшедший, и я скажу, что я был одним из
эти люди я очень скептически относился к
Когда я впервые увидел это, я действительно
действительно действительно его ненавидел, потому что это
оскорбил мою религию отделять
HTML CSS и JavaScript в эти
ведра , как вы делали, но
после прослушивания их мотивов для
в то время как КЭС начал появляться
немного подумайте о том, почему мы
началось как отрасль — началось
отдельные HTML и CSS и
JavaScript в костюмах в отдельные файлы
на первом месте в программировании есть
эта концепция, которая называется делением и
завоевать его также часто называют также
как разделение проблем, и это приходит
от того, что как человек, потому что
программисты являются людьми, существует ограниченный
количество когнитивного пространства в вашем мозгу
как некоторые люди могут думать только о
одна вещь одновременно и, возможно, некоторые
люди тоже могут подумать и, может быть,
некоторые люди могут даже провести три или четыре
или пять вещей в голове у
но нет человека , который
может содержать 10 или 30 или 40 или сто
вещи в вашем уме в то же время, так что
нам нужно , мы должны быть в состоянии
разделить наши программы так , что мы можем
подумайте об одной части за раз, поэтому
это хорошо зарекомендовавшая себя техника среди
программисты это одна из первых вещей
что вы узнаете, когда дело доходит до
структурирование вашего программного обеспечения, когда
вы столкнулись с большой проблемой большой
волосатая проблема, ты хорошо, ты, ты
как есть слон, чтобы начать с
щелкая в нем по одному бит за раз
вы в основном найдете способ
большая проблема во многих многих крошечных
проблемы, и вы приносите отличную структуру
так что вы можете подумать об одном из этих
проблемы подобны раздельному разделению и
властвуй также часто говорил о том, как
разделение проблем у нас есть
проблема эта большая проблема и которую мы
разделить на множество небольших проблем
это не страшно, так что мы можем
подумайте об этих разделенных проблемах
индивидуально сейчас сложной частью является то, как
как вы отделяете эти вещи
по каким критериям , что является
индивидуальные проблемы, поэтому большинство программистов
знать о разделении проблем и
желайте этого и хотите сделать это в своем
но вы можете быть
не обязательно должны быть в состоянии сделать это для
Например, вы можете быть младшим разработчиком
и разделение проблем может быть
новый элемент для вас, вы знаете, что вы
должен сделать это, но вы не
опытный в этом, так что вы не можете
посмотреть, как разбить эту большую проблему
в несколько маленьких, потому что вы
точно не увидеть швы так сказать
но также может быть, что вы
опытный программист, и вы сделали
это много раз прежде , но , возможно ,
вы устали или, может быть, как вы, просто
не думал об этой проблеме
достаточно проблем, чтобы вы
не видят деревья в лесу
но когда вы находитесь в такой ситуации
где вы хотите разделить проблемы, но
вы не можете понять, как это сделать .
очень легко попасть в ловушку делать
то, что только кажется, что ты
разделяя проблемы, и в случае
обсуждение CSS CSS JavaScript, которое
содержащиеся здесь в вашем интервью
части вашего приложения вид
отделены от вашей бизнес-логики, которая
может быть таким, как если бы это было
системы электронной коммерции, это было бы похоже на
система заказов, которая
базы данных и размещает заказы как оплаченные
отправляет электронные письма или сообщает платежной системе
что это должно
обрабатывать этот платеж, который по кредиту
которую мы получили от вида
и внутри бизнес-логики
может быть еще меньше
такие условия, как штрафы нам как платеж
системы, которые могли бы быть
содержаться так, что это не знает
о всех вещах в бизнесе
логики мы можем так, чтобы он мог обрабатывать просто
как мы можем думать о
просто платежи, когда вы работаете
этот модуль нам не нужно
весь бизнес- уровень в наших головах
но проблема много людей было тогда
в представлении было то, что вам нравится
упорядочить представление, то как вы нарушаете
эти части друг от друга, например, где
швов в представлении, что эквивалентно
такие вещи, как платежная система внутри
ваша бизнес-логика как отрасль мы
были смущены об этом в течение длительного времени
мы не знали, как сломать
с тем чтобы мы могли
думать о более мелких его частях
индивидуально, и это расстраивало нас
потому что было слишком много, чтобы думать о
так что да, мы просто начали его разделять
каким-то образом это было похоже на то, что мы были в этом
с этим семинаром по механике и
там были части повсюду и
мы не знали, как они работают или как
они взаимодействовали, и нам нужно было
организовывать и как-то и в наших
разочарование, мы начали организовывать
их по цвету мы тем, как они выглядели ах
и мы помещаем красные в
красное ведро и зеленые в
зеленое ведро и синие в синем
ведро и это на самом деле не сделать
что-то легче найти, потому что это было
бессмысленное упорядочение было именно тем, как
все выглядело ах, но было лучше
чувствовал, что мы организовали вещи, и мы
создали порядок, но на самом деле мы
просто нужно было прыгать гораздо больше
между разными цветными
ведра и поиск в них и
это то, что мы сделали с HTML и CSS и
JavaScript мы помещаем их в отдельные файлы
и мы постановили, что это лучший способ
организовать вещи сейчас
но на самом деле мы
но это не разумный способ
организуя сейчас, нам нужно
помните, что главная причина, по которой мы
делают организацию кода в первом
место, так что мы можем разделить
что мы можем уменьшить нагрузку
на наши мозги , позволяя нам думать
о меньших подмножествах
нашей проблемной области, такой как меньшая
проблемы наших больших больших проблем,
проблемы содержатся в небольших единицах
и не смешиваются с каждым
других слишком много, чтобы мы могли думать
об этом с этой точки зрения
вещи в HTML CSS и JavaScript является
как совершенно бессмысленно, позвольте мне показать
вы CSS — это ж, так это наш взгляд
правой HTML CSS и JavaScript теперь давайте
скажем, что у нас есть проблема с нашим представлением
и нам нужно задуматься об этом
теперь может случиться так, что в некоторых случаях
что ваша проблема заключается в том, что
в задании в праве CSS может
что проблема только здесь
некоторый пиксель, который вам нужно переместить
однако, по моему опыту, и я думаю
в проблемах большинства людей или
они охватывают эти вещи такими видами
проблемы, которые охватывают HTML CSS и
JavaScript — гораздо более распространенные проблемы
чем эта проблема, и именно поэтому
эта организация по типу файла или языку
тип не имеет смысла, поскольку
заставит вас любить прыгать между
это все время так позволяю мне
привлечь еще одну,
может быть такой или иной проблемой
может быть так, если вы согласны с
меня, что эти компании являются нашими проблемами
и эта проблема охвата более распространена
чем проблема, которая касается только одного
тип технологии, то вам нужно, если вы
согласитесь с тем, что вам также необходимо согласиться
со мной о том, что это
организация такого рода разделения
это не разделение заботой этой
просто разделение вы знаете как
цвет или что- то просто
в последнее время это не поможет вам
думать об этих проблемах индивидуально
это фактически помешает вам, потому что вы
придется перепрыгивать между этими контекстами
все время, если кто-то говорит вам, что
разделение CSS CSS и JavaScript, которые
что это разделение проблем, то
они бред, вы, они не
знаю, что разделение проблем означает, что я
думаю, что HTML CSS и JavaScript
разделение религии , что я когда — то был
часть помнить — еще одна марка
другая вещь, которая довольно широко распространена
и что я считаю очень вредным
совет очень вреден, но это очень
тупой и непроизводительный, то есть и на
одинокие функции или плохое это очень
очень очень плохой совет сейчас не получается
я ошибаюсь , очень плохой код
написанные в течение длительного времени, как одно исполнение
функции, которые невозможно
рассказать или понять что-нибудь о
но люди путают , что но что
факт, что одиноко , что
что-то с этим связано, и я слышу людей
как вы не должны
функция, длина которой превышает одну страницу или
некоторый произвольный номер строки, который
абсолютно не важно, что только
цвет , который просто , как выглядят вещи , которые
только что только организация,
чувствует себя как организация, но на самом деле
разделение проблем сейчас перед вами
вытащить вилы Я не против
извлечение функции извлечения функции
это фантастика, это очень полезно
но я хочу, чтобы вы поняли здесь
что существуют две функции
извлечение плохого и хорошего
давайте говорить , что мы имеем , как это
большая проблема в этом
это большая проблема, это ваша большая задница
файл, который имеет дело с некоторыми, которых вы знаете
конвейер данных или какой-либо этот файл
становится громоздким, и нам нужен какой-то способ
разбивая его на куски, чтобы он
сделать его проще для нас , чтобы думать об этом
теперь хорошая функция извлечения
он замечает, что у нас есть проблема
вот и все.
и здесь, здесь и здесь, и мы понимаем
что мы можем переместить этот код в один
блок вместо его распространения
над файлом, чтобы мы могли думать о
эту книгу отдельно мы могли бы также
что это одно, что
на самом деле не добыча, но это так
разделение проблем, даже если
мы ничего не вытащили из
файл в функцию, которую мы только что
переместил код так, что он
в нужном месте мы могли бы также заметить
что есть ааа функция здесь
и это дублируется здесь, и мы
также обратите внимание, что это общая концепция
как будто это может быть какая-то строка
что на самом деле не связано с
эта область проблем я сделал
что-то вроде реверсирования строки или
верхняя оболочка строки или капитализация
например, первое письмо, и мы
поймите, что да, это может быть перенесено на
совершенно другой файл, и мы делаем это
мы создаем функцию и здесь
некоторый отдельный файл, и мы его называем
файл, потому что это небольшой
содержащую проблему, которая является общей, мы можем
переместите это из файла, и это также
очень описательный, например
с заглавной буквы, видя, что вызов в
в коде вы получите то , что на
просто глядя на звонок, которого у вас нет
зайти в файл и нарисовать материал
для того , чтобы использовать капитализируются в вашем ин
ваш большой файл, так что это хорошо
извлечение функции
мы фактически отделили озабоченность
так что у нас есть меньше всего мыслить
о, но давайте поговорим о плохом пути к
делать функцию извлечения, поэтому у нас много
кода у нас есть некоторый код здесь.
здесь есть некоторый код.
и очень легко сделать это, чтобы начать
делать, как о, это так много кода, давайте
просто разбейте его на главы
эту часть здесь и дать, что функция
имя и поместить его в функцию, а затем
у нас есть только одна строка кода и
мы проверяем это и назовем, что a
и мы берем это и называем это
функцию, так что мы просто имеем
часть, поэтому один вызов, который для данных
часть 3 добавляет / редактирует — вызывает это, но
с настоящими именами для того, что они делают
в первую очередь это довольно расточительно вы
могли бы сделать это с так же , как имеющие
комментарий сверху каждого блока, который вы не
должны добавить функцию, чтобы сделать это
вы просто добавляете больше поверхности API
без уважительной причины
но даже если мы снижаем, что вы тоже
что делает ваш код сложнее рассуждать о
по той же причине , что мы сделали , как
в HTML трудно понять
CSS и JavaScript, потому что ваш
проблемной области вы не разделены
что вы настроились, я думаю
какой-то визуальный артефакт у вас нет
правильно подумал о том, как это сделать
извлечение фактически поможет мне
подумайте о меньших частях
приложения, и когда вы это сделаете
ручной волновой вид извлечения функции
вы оказываетесь в ситуации, когда вы
поймите, что вы входите в этот метод
эту функцию здесь, и вы смотрите на
код, и когда вы понимаете
что мне нужно войти в эту функцию
понять, что
происходит раньше, чтобы
понять, что это
функция работает, и это когда вы
получить это чувство, если это чувство ударит
вы это означает, что вы сделали плохое
извлечение, и вы, вероятно, должны
это снова и снова, пока вы не
могут найти фактические части, которые
полезны для прорыва, которые являются актуальными
проблемы, которые могут быть разделены, поскольку
в этом случае у вас есть проблема
позвольте мне нарисовать черным пером
потому что это делает его намного яснее ах
является то , что у вас есть проблемы , которые охватывают как
это или, может быть, у вас есть некоторые
проблемы, которые охватывают
что, но в конце концов , вы должны
думать об этих вещах , как первый
это то , что вы пытаетесь
думать об отдельности, и если вы
просто делай это странно, как произвольные способы
разложения на функции
это не проблема
ты, ты в конечном итоге просто прыгаешь
внутри и вне функций все время и
прыгать вниз stacktrace — выскочка
для того, чтобы найти проблему, которая
мой побег на сегодня вокруг, что я когда-либо
было много раз, и у меня будет
еще раз убедитесь, что, когда вы
организация и разделение вашего кода на
убедитесь, что вы отделяете
это ваши текущие проблемы, а не ваши
отделив его, вы только что просмотрели
эпизод веселья функции веселья это
программирование показывает, что я выпускаю каждый
В понедельник утром o 800g mt время, так что
Ваши мысли по этой теме , пожалуйста ,
комментарий ниже, и я отвечу или
кто-то из ваших ваших друзей или
может быть, если у вас, возможно, нет чего-то
еще сказать, пожалуйста, ознакомьтесь с комментарием
в любом случае и посмотреть, есть ли там кто-нибудь
как вы могли бы прояснить что-то для
кто то
Ричард ах это
они все в порядке сказали, что вы должны
подписаться i mmm PJ до следующего понедельника
утро спасибо
Please follow and like us:

Be First to Comment

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