У вас больше половины тестов проверяют, что есть такой-то объект, и у него есть методы с такими-то названиями. Это реально так полезно и спасает от кучи багов потом?
Причем тут эго? Я сильно сомневаюсь, что кто-то создает неудобный или непродуманный интерфейс из гордости. Всегда можно упустить какую-то мелочь, которая позволит программе быть лучше. И любой адекватный программист с радостью эту мелочь поправит.
И уж точно никто не будет сидеть и думать: сделаю так, чтоб лопасти опускались каждый раз, я ж им не прислуга.
Как это не будет иметь смысла? Отличный курс по одной технологии — это что-то бессмысленное?
Эти ваши два курса можно где-нибудь увидеть? Может показать их здесь и вам помогут и с редактированием, и корректурой, и со всем остальным. Заодно и подскажут много всего. И все по делу будет.
А зачем на всех и подо все? Напишите курс об одной технологии. Напишите главу курса. Напишите часть главы, наконец. Когда будет, что показать, найдете желающих продолжать это дело, благо формат работы вы зададите. А сейчас это звучит как «хорошо бы собрать специалистов, энтузиастов, влить кучу денег от инвесторов, заручиться поддержкой МинОбра и написать учебники». Конкретики ноль = результата ноль.
Уже при двух «продвинутых пользователях», их сроки пребывания на сайте начнут накладываться друг на друга, и ничего утверждать точно будет невозможно. А если их будет 10 (+50 нормальных)? Какой тут алгоритм выявления?
Идея верная, но по-моему, того же результата можно добиться, просто посмотрев на код контроллера и решив, что можно оттуда перенести в более подходящее место.
1. Инопланетяне отлично понимают, как работает человеческий мозг, могут ставить имплантанты для понимания чужой речи, но при этом не в состоянии вытащить оттуда информацию о координатах? Ни супер пытками, ни медикаментозно, ни гипнозом, ни чтением мозга, никак?
2. Инопланетяне же нашли корабль (а иначе как герой попал на планету)? Значит, они либо могут вытащить оттуда координаты, и герою уже не нужно париться, либо не могут (что странно, при их уровне развития), и герою нечего париться.
А почему бы не начать с сюжета, героев, основных событий, возможных параллельных линий и прочего? Когда вам нужно написать, скажем, сайт или крупное приложение, вы же не бросаетесь в редактор и не начинаете писать строчку за строчкой, верно? Сначала архитектура, потом отдельные модули, потом еще что-то, и только в конце код — осмысленный и легкий.
Если уж подходить программистски, то стоит набросать вехи сюжета. Например, [крушение, встреча с пришельцами, понимание опасности, разработка плана бегства, крах плана бегства (предательство), отчаяние, подвернувшаяся возможность, новый план, реализация, уничтожение корабля, смерть]. Это все обсуждается, решается и утверждается. Затем продумывается «архитектура» модулей, например, крушение: [пейзаж космоса, мысли и ожидания ГГ, непредвиденные обстоятельства, борьба с ними, проблема решена, спокойствие, опять мысли и ожидание, что-то было упущено = поломка корабля, потеря сознания]. Опять обсуждается и решается, для каждого модуля. И так прорабатывается сюжет, пока он не станет ясен всем до мелочей. Глупо писать сцену крушения сейчас, если под конец выяснится, что ее причиной стали козни инопланетян. Или начинающаяся болезнь Альцгеймера у ГГ. Или что-то еще, но нужно это знать заранее, а не импровизировать по ходу.
Когда сюжет будет ясен, можно добавлять всякие фишечки, типа особенностей отдельных персонажей (например, кто-то постоянно чихает, вставляет какие-то слова-паразиты, постоянно всего пугается и т. д.), особенностей мира (зеленое небо, сильная / слабая гравитация, ощущение жжения кожи) и т. д. Можно подумать о скрытых линиях, например об отсылках к Одиссее / Алисе в Зазеркалье / философии Гегеля. Или о том, что форма произведения странным образом похожа на ассемблерный код. Или о том, что один из героев говорит цитатами из интервью Торвальдса. Это не обязательно, но больше шансов, что получится не говно / банальщина.
И только потом все это можно реализовывать, отдельными модулями. Пытаться подобрать наилучшие слова, метафоры, править ошибки. Потом провести «интеграционное тестирование» и готово.
А писать от начала до конца — это все равно, что рисовать картину, закрашивая холст от левого верхнего угла к правому нижнему.
Вот смотрите. Предположим, вы читали некоторую книгу три недели. А ваш приятель прочел ее за одну. Скажите, что вы подумаете: «Ух ты, как быстро он читает» или «Сомневаюсь, что автор предполагал такую скорость чтения. Наверняка прочел с искажениями. Да и что он мог извлечь? Сюжет и действующих лиц? Фаст-фуд какой-то.»?
Ах да, повторюсь: искажения (как вы их понимаете) неизбежны. Всегда есть что-то, что вы упустили. Количество этих потерь зависит от кучи вещей: сложности сюжета (в разных смыслах), насыщенности действием, внимательности зрителя, ума зрителя, состояния зрителя. Если я, или автор, или кто-то еще в состоянии держать количество этих потерь на приемлемом для себя уровне при увеличенной скорости, то какие тут еще вопросы?
«Усваивать» у меня означает то, что вы понимаете под «полноценно посмотреть фильм».
И уж точно никто не будет сидеть и думать: сделаю так, чтоб лопасти опускались каждый раз, я ж им не прислуга.
Эти ваши два курса можно где-нибудь увидеть? Может показать их здесь и вам помогут и с редактированием, и корректурой, и со всем остальным. Заодно и подскажут много всего. И все по делу будет.
1. Учебник для новичков Еще куча ссылок и материалов.
2. Доки по стандартной библиотеке. Постоянно можно находить для себя что-то новое. Например, двоичная куча или модуль для чтения определенных строк из файлов.
3. Language Reference — синтаксис языка в деталях. Особенно интересны материалы по ООП. Еще про new-style classes.
4. FAQs и HOWTOs, очень полезные.
5. PEPs, в основном не для новичков, но тоже очень познавательно.
6. Огромная Wiki, где можно найти еще очень и очень много полезной информации. Например, советы по оптимизации: раз, два.
Остаются еще всякие best practices, но они обычно зависят от фреймворка, так что тут лучше всего изучать код хороших open-source проектов.
1. Инопланетяне отлично понимают, как работает человеческий мозг, могут ставить имплантанты для понимания чужой речи, но при этом не в состоянии вытащить оттуда информацию о координатах? Ни супер пытками, ни медикаментозно, ни гипнозом, ни чтением мозга, никак?
2. Инопланетяне же нашли корабль (а иначе как герой попал на планету)? Значит, они либо могут вытащить оттуда координаты, и герою уже не нужно париться, либо не могут (что странно, при их уровне развития), и герою нечего париться.
Если уж подходить программистски, то стоит набросать вехи сюжета. Например, [крушение, встреча с пришельцами, понимание опасности, разработка плана бегства, крах плана бегства (предательство), отчаяние, подвернувшаяся возможность, новый план, реализация, уничтожение корабля, смерть]. Это все обсуждается, решается и утверждается. Затем продумывается «архитектура» модулей, например, крушение: [пейзаж космоса, мысли и ожидания ГГ, непредвиденные обстоятельства, борьба с ними, проблема решена, спокойствие, опять мысли и ожидание, что-то было упущено = поломка корабля, потеря сознания]. Опять обсуждается и решается, для каждого модуля. И так прорабатывается сюжет, пока он не станет ясен всем до мелочей. Глупо писать сцену крушения сейчас, если под конец выяснится, что ее причиной стали козни инопланетян. Или начинающаяся болезнь Альцгеймера у ГГ. Или что-то еще, но нужно это знать заранее, а не импровизировать по ходу.
Когда сюжет будет ясен, можно добавлять всякие фишечки, типа особенностей отдельных персонажей (например, кто-то постоянно чихает, вставляет какие-то слова-паразиты, постоянно всего пугается и т. д.), особенностей мира (зеленое небо, сильная / слабая гравитация, ощущение жжения кожи) и т. д. Можно подумать о скрытых линиях, например об отсылках к Одиссее / Алисе в Зазеркалье / философии Гегеля. Или о том, что форма произведения странным образом похожа на ассемблерный код. Или о том, что один из героев говорит цитатами из интервью Торвальдса. Это не обязательно, но больше шансов, что получится не говно / банальщина.
И только потом все это можно реализовывать, отдельными модулями. Пытаться подобрать наилучшие слова, метафоры, править ошибки. Потом провести «интеграционное тестирование» и готово.
А писать от начала до конца — это все равно, что рисовать картину, закрашивая холст от левого верхнего угла к правому нижнему.
Ах да, повторюсь: искажения (как вы их понимаете) неизбежны. Всегда есть что-то, что вы упустили. Количество этих потерь зависит от кучи вещей: сложности сюжета (в разных смыслах), насыщенности действием, внимательности зрителя, ума зрителя, состояния зрителя. Если я, или автор, или кто-то еще в состоянии держать количество этих потерь на приемлемом для себя уровне при увеличенной скорости, то какие тут еще вопросы?
«Усваивать» у меня означает то, что вы понимаете под «полноценно посмотреть фильм».