ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
964977 Топик полностью
RxTx (15.12.2019 15:29 - 15:39, просмотров: 746) ответил Chum_A на По условию регулятор как жена цезаря, вне подозрений и (если угодно) проверен всеми имеющимися анализаторами. Кстати, статический (и не только) анализ не выявляет, например, идеологических ошибок. Изначальный посыл был "будёновский", супротив
У людей есть непонимание, мисконцепция. Например, недавно fk0 кидал статью Joel Spolsky "закон дырявых абстракций". Я уже не раз наталкивался на этого wannabe компьютерного "философа", изобретающего на пустом месте "законы", тогда как ситуация банальна и это его личное недопонимание. В данном случае того, что взаимодействовать должны над-системы соответствующего верхнего уровня (и только на этом верхнем уровне). Неверно ожидать что TCPIP должен решать или сталкиваться с уровнем физического линка. Это не "leaky abstractions", это непонимание того как между собой взаимодействуют системы. Мисконцепция о которой я хотел сказать в том что системы верхнего уровня, состоящие из под-систем нижнего уровня неполноценно называют "абстракциями". Они безусловно, являются абстракцией над нижним уровнем. Но с другой стороны, это не только абстракция. Это совершенно закономерный способ пострения над-систем, систем верхнего уровня. Так организована вся природа, включая строение наших биологических тел. Вопрос, ЗАЧЕМ может потребоваться из под-систем построить над-системы? Зачем требуетя уровень выше? Зачем это в природе, это отдельный разговор. А инженера, разработчикам это требуется для УПРАВЛЕНИЯ СЛОЖНОСТЬЮ. Я как-то сформулировал для себя такое шуточное правило. Если разработчик управляет сложностью, понижает сложность - это хороший, годный разработчик. Если в процессе его деятельности сложность увеличивается или не понижается - это плохой, негодный разработчик. :))) Основной инструмент разработчика - это инкапсуляция, создание иерархий, иначе сложность не понизить. Где применяется введение над-систем? Прежде всего, в электронике. Транзистор - это самый низкий уровень. Введение микросхем позволило резко понизить сложность, перейти от работы с миллионами транзисторов к законченным "коробочкам". Существуют и дальнейшие шаги по "абстрактизации", точнее по снижению сложности и инкапсуляции. Это: Платы. как правило - со своими интерфейсами-разъемами Модули (набор нескольких плат) как правило - со своими интерфейсами. Блоки (как правило, со своими межблочными интерфейсами) Стойки Электроника в этом процессе будучи неабстрактной, материальной деятельностью добилась значительных успехов. Чего не скажешь о программировании, которое забуксовало на уровне "объекта", а это 60е годы. --- Основной мой посыл был сказать: Не надо негативно воспринимать "абстракции". Потому что это не "абстракции", а создание под или над- систем, естественный путь инжиниринга, управление сложностью. И в электронике полно примеров когда без этого не обойтись. Я бы посоветовал строить программные системы так, как строятся электронные системы. С моей точки зрения в этом будешее.
Спасибо, князь. Вы настоящий дворянин. И программист.