Учиться и понимать полный стек - PullRequest
2 голосов
/ 12 декабря 2010

Я боролся с идеей в течение нескольких недель и хотел посмотреть, может ли кто-нибудь помочь мне здесь.

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

Мне было интересно, есть ли учебный ресурс, посвященный обучению программированию в пошаговом режиме. Это приведет к пониманию полного стека.

  1. возьми небольшую проблему
  2. реализовать простое решение
  3. поговорим о решении и используемых конструкциях
  4. преобразовать решение в фреймворк или утилиту какого-то рода
  5. теперь расширьте проблемное пространство и повторите процедуру, начиная с шага 2.

Таким образом, когда кто-то выбирает какую-либо инфраструктуру / библиотеку, он может легко представить себе проблемы, которые пытается решить инфраструктура, принятые проектные решения и причины их возникновения.

[Добавлено для уточнения цели]

Основываясь на ответах и ​​комментариях ниже, я хочу уточнить, что я хочу двигаться дальше вверх по стеку. Создание собственного ORM для лучшего понимания ORM, то же самое относится и к ActiveRecord, контейнеру IOC, привязке данных, шаблонизатору и множеству других магических / клейких / сантехнических операций, которые мы используем ежедневно.

Спасибо.

Ответы [ 4 ]

1 голос
/ 12 декабря 2010

Вот что я рекомендую: иметь кисть со сборкой (достаточно одной книги или одного месяца).Имейте хороший сильный обзор C ++ (надеюсь, он также научит вас немного C).Теперь мир твой.Python сделан на C / C ++, объект C довольно близок к c ++, .NET находится на C ++ и C # / VB.NET, Windows API ориентирован на C.

Я выбрал C # в качестве своего абстрактного языкавыбор после этого кстати.

0 голосов
/ 13 декабря 2010

Прочитайте источник. Хорошая идея - создать то, что вы хотите понять, но вы можете значительно улучшить свое понимание концепций, взглянув на то, как что-то создано. Это особенно верно для элементов инфраструктуры (ORM / DI / Templating), которые вас интересуют.

Получите программное обеспечение для сборки на своем компьютере, подключите отладчик и проследите код. Это довольно легко для C # / Java с хорошей IDE. Для динамических языков, таких как Python и Ruby, требуется хороший редактор и много работы.

Если это хороший программный пакет, у него обычно есть тесты. Тесты - отличное место, чтобы начать копаться в коде. Они обычно проясняют смысл кода, а также предоставляют вам логическую отправную точку, чтобы отделить слои и фактически заглянуть под капот.

0 голосов
/ 13 декабря 2010

Лучший пример такого рода учебных ресурсов, которые я ищу, - это сессия MIX Роба Айзенберга «СОЗДАЙТЕ СВОЮ СОБСТВЕННУЮ РАМКУ MVVM».Он шаг за шагом объясняет шаблон и одновременно его реализует, атакуя по одной проблемной области за раз.

http://live.visitmix.com/MIX10/Sessions/EX15

Надеюсь, что есть и другие.*

0 голосов
/ 13 декабря 2010

Создание полностью функционального компилятора с нуля на системном языке, таком как C или C ++. Возможно, это не полный стек, но это большая его часть. Это то, что я тоже хочу сделать. Если бы я только мог найти время и пространство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...