Закон Мура к развитию программного обеспечения работы - это косвенный, и каждые 18 месяцев, будет срок действия половины знаний истекает. Я написал некоторые статьи истек, и сегодня мы говорим о теме, не будет такой простой на сегодняшний день - что «старший брат в отрасли» - это как думать? Структурированная часть знаний - это то, что?
Однако следует заранее объяснить, что эта статья не настолько серьезна и предназначена только для того, чтобы вдохновить других. Если вы хотите узнать больше об этом, вы должны прочитать несколько классических книг.
От рамок мышления к базовым принципам и конкретным передовым практикам
Я узнал некоторое время назад10x Закон о работе программиста,«Прорыв в эффективности НИОКР»Сам контент самого высокого качества не то, чтобы сказать, я был вдохновлен большей организацией их контента. к10x Закон о работе программистаНапример, его содержимое организовано следующим образом:
Такой дизайн позволяет нам интуитивно понять основной контекст курса.
Рамка мышления — это отправная точка вещей, которая используется для изучения цели и понимания направления; основной принцип — это основная направляющая идеология в рамках рамки мышления; наконец, конкретная практика осуществляется под руководством основного принципа. . Отношения между этими тремя будут подробно объяснены позже.
На мой взгляд, это структурированный свод знаний. Этот метод может помочь вам построить набор вашей собственной системы знаний, когнитивной модели, а также может использоваться для руководства вашей практикой действий.. Я надеюсь, что это может дать вам некоторое вдохновение.
Мышление рамки
Самая верхняя структура мышления часто представляет собой некоторые философские вопросы, не более чем безопасность, часто задающие вам три вопроса:
- Кто ты?
- Родом из?
- Куда идти?
WWH:
- Почему? → Цель, философия
- Какой? → 定义、概念、现象或成果
- Как? → 具体操作方法、措施
Думая в этой рамки, хотя простая, но она может длиться всю жизнь.
Это может быть основой для любого действия. как япредыдущий постЭтот шаблон также применяется в главе «Как смотреть на новые технологии»:
- Что это?
- Решать проблему?
- Как это решить? идея → процесс → реализация
Другой пример: в следующий раз, когда менеджер по продукту выдвинет вам требование, применяя этот фреймворк, вы можете спросить его:
- ЗАЧЕМ? Зачем вам эта функция? Какую ценность это может принести пользователям? Или какую пользу это может принести компании? → Без ценности нет смысла делать
- ЧТО, КАК? Какие пользователи будут использовать эту функцию, в каких сценариях они будут ее использовать и как они будут ее использовать? Это единственный способ достичь этой функции? Есть ли другие варианты? → Вы можете измерить, была ли тщательно продумана эта функция, является ли она вашей собственной YY и является ли она разумной
Если продукт не может ответить, извините, вернитесь и дождитесь уведомления.
Произошло недавнонайм(Иди сюда со своим резюме Y2FybmV5NTIwQGhvdG1haWwuY29t), в соответствии с приведенной выше процедурой, я могу проверить вашу «сущность» (диалект Али, слухи):
- Как вы думаете, на каком уровне вы сейчас находитесь? Каковы недостатки
- Какова ваша цель? К какой команде хотелось бы присоединиться?
- У тебя есть планы?
Хорошо, давайте оставим мыслительный вопрос, если ваш босс покрасит большой пирог, как вы хотите его?
в общем
Мы можем привести другие примеры, с которыми мы более знакомы, например, объектно-ориентированный дизайн.SOLIDв общем:
- S Принцип единой функции: Что «объекты должны иметь только одну единственную функцию» концепции
- : Подумайте "Объект в программе должен иметь понятие "подклассы", которые могут быть заменены его подклассами без изменения корректности программы.
- Принцип изоляции I-интерфейса: Концепция «множество клиентских интерфейсов лучше, чем один интерфейс общего назначения».
- D Принцип инверсии зависимостей: считает, что метод должен следовать принципу «зависимости от абстракции, а не от экземпляра».внедрение зависимостиЭто реализация принципа.
Те, кто занимается предметом, прекрасно знают эти принципы, и новичку может быть трудно понять. Это сокровища пламенной воли Хокаге прошлых династий, и их понимание может быть не таким глубоким без крещения на поле боя.
Давайте поговорим о принципе, который я использовал в своей карьере программиста.То естьDRY(Не повторяйтесь), потому что это сравнивается с принципами SOLID,KISSпринципы, более понятные или более практичные.
Принцип DRY заключается в том, чтобы просто определить повторяющийся код, подумать о нем и провести его рефакторинг.
Если вы выработаете эту привычку во время программирования, вы обнаружите, что ваш код естественным образом будет иметь относительно хорошую структуру, а также может соответствовать некоторым из вышеперечисленных принципов (на самом деле они по своей сути пересекаются и взаимосвязаны).
Иными словами, после целенаправленного обучения по принципу DRY у вас выработается вкус к программированию (постучите по доске, она же является полигоном для крупных производителей).
Есть много похожих идей/принципов, таких какФилософия Unix, философия Windows и некоторые алгоритмические идеи:
Идеи классического алгоритма, источникzhuanlan.zhihu.com/p/73144439
Философия Unix
На картинке выше есть два пасхальных яйца:
-
Один из них Кен Томпсон (Unix, Go, один из действительно больших классов Божьей) Очень практичные «рекомендации»: «Не уверен на исчерпывающем», он хочет высохнуть, сказал.
.
-
Вам трудно говорить об этих принципах? Это не сложно, всего несколько слов.
Если вы старая птица на долгие годы, это может вернуть вас к истокам. Если вы новичок, то выучите его наизусть (шучу) или вставьте в рамку и повесьте в гостиной, сделайте обои, сделайте из него коврик для мыши, распечатайте на термосе...
Конкретные лучшие практики
Идя дальше, это передовая практика / шаблон проектирования, который был обобщен на практике в соответствии с принципами. Может использоваться для руководства решением конкретных проблем предметной области.
Если взять в качестве примера «Закон о работе программиста в 10 раз», его окончательная структура знаний выглядит следующим образом:
Возьмем знакомый пример, самый типичный — объектно-ориентированный."Шаблоны проектирования"Это уровень знаний:
источник:no.OSCHINA.net/U/4353432/no…
Шаблоны проектирования — это конкретные практики, основанные на принципах SOLID.
Дело не в том, что нам просто нужно изучить рамки мышления и руководящие принципы, лучшие практики также изучаются намеренно. триКаждый уровень дополняет друг друга, и сформированная таким образом система знаний относительно устойчива.:
-
Лучшие практики являются продуктом рамок мышления и руководящих принципов. Если вы просто осваиваете лучшие практики, остаетесь на поверхности и не подключаетесь к его внутренним мыслям, вы не можете достичь интериоризации и сублимации. Что, если вам посчастливится попасть в новый мир без каких-либо передовых практик и шаблонов проектирования?
-
Идеи и принципы не могут быть отделены от практики.
Лучшая практика обычно подведена практикой других, может быть мультиплексирована на мультиплекс не так ли? Лучшие практики, руководящие принципы для нас стоят на плечах гигантов, является ярлыком, так что мы можем идти меньше объезды.
Поскольку ситуация у всех очень разная, чужая практика может вам не подойти, или вы опережаете мир, и мышление на высшем уровне является полезным руководством для создания лучших практик.
Кроме того, практика также углубляет наше понимание мышления верхнего уровня.
-
Практика и мышление — это взаимоподтверждающие отношения.
Позже, когда вы читаете книги и изучаете определенные курсы, вы можете обратить внимание на их организационную структуру, которая может в какой-то мере отражать уровень автора.
Все рутинно, и наборы задают.
Позвольте мне привести несколько примеров:
-
KISS
-
DRY
-
SOLID
-
SPOT
-
17 принципов философии Unix
-
Три достоинства программистов: лень, нетерпение, высокомерие.
От автора Perl Ларри Уолла с соответствующими пояснениями:
- Ленивый, это качество, он заставит вас потратить большие усилия, чтобы избежать чрезмерного потребления энергии, призываю вас писать процедуры, другие могут хорошо использовать, вы также напишите идеальный документ, так что от других, чтобы задать вопросы.
- Нетерпеливый, ленивый компьютер вызывает у вас ярость. Это заставит вас писать сверх ожидаемой программы, а не только в ответ на спрос.
-
...
В этой статье упоминается и расширенное чтение
Философия программирования Unix
10x Закон о работе программиста
"Шаблоны проектирования"
Если вы не понимаете эти восемь идей алгоритма, бесполезно писать дополнительные вопросы!
Хорошо изучите алгоритмы, есть три области
Какие алгоритмы должны освоить программисты?