Category: архитектура

Category was added automatically. Read all entries about "архитектура".

Профессиональное

Лично я всю жизнь разрабатывал софт методом Intergity Test Driven ("поменял строчку - запустил всю систему с нуля, погонял в разных режимах и посмотрел, получилось ли то, что должно было получиться"), и потому не особо нуждался в юнит-тестах. Но в больших коллективах, где каждый отвечает только за свою строчку, и лишь Бог - за конечный продукт, они наверное нужны, чтобы прикрыть личную задницу. "К пуговицам претензии есть?".

Юнит-тесты, зачастую, работают против проекта, а не "за": любое внутреннее изменение кода (не меняющее поведение системы с точки зрения пользователя) часто заставляет менять, выкидывать или переписывать с нуля кучу тестов.

Внешнее поведение системы (типа АПИшки или интерфейса) стабильней, чем внутренняя архитектура кода.Потому юнит-тесты не нужно писать вообще, а функциональные тесты - напротив, писать нужно почти всегда.


UPD. Прочитав комментарии, я решил сформулировать следующую метафору о соотношении тестирования и разработки: пока пользователей мало, рулит разработка, когда пользователей много, на первый план выходит надежность системы, а следовательно, тестирование и минимизация рисков, вносимых очередными изменениями. В пределе относительная трудоемкость разработки в сравнении с тестированием стремится к нулю.

Вместо пьятницы

Здесь все от мене зависит (с)

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

Подсчеты ОЭСР свидетельствуют, что если лимит на [американский федеральный] долг не будет расширен, в 2014 году все страны ОЭСР окажутся в рецессии...

На минуточку, ОЭСР - это 34 наиболее развитых мировых государства. И все они, как выяснилось, живут на подачки американского бюджета. Не правда ли, впечатляющий результат централизации?

Казалось бы, самое время "объявлять свой двор валютной зоной". Но вот закавыка - валютные зоны не объявляются, а строятся, и архитектура таких сооружений совсем не простое дело. Посложнее, пожалуй, архитектуры мостов и программных продуктов. И если винды мастдай, то отсюда совсем не следует, что вася-пупкин-ОС сразу же начнет замечательно работать. Создавать валютные зоны тоже уметь надо, а с умениями среди "интеллектуалов", которых у нас "полно", как-то не очень :(

Настоящая причина революций

Вообще-то довольно очевидно, что серьезные проекты, вроде слома до основания целой государственной машины и строительство ее заново, возникают не от "обострения нужды и бедствий", а по причине соответствующих инвестиций. Есть несколько миллиардов долларов к распилу под "р-революцию" - пильщики найдутся.

А появляются миллиарды так:

Человек может жить в выгребной яме, и считать себя королем, или страдать во дворце от нестерпимой роскоши.

Зубочистки в Европе

Съездил в отпуск, 3500 километров по Испании, Барселона-Мадрид-Севилья-Гранада-Валенсия и так далее. Так вот, ни в одном кормежном заведении, от придорожных кафе самообслуживания до ресторанов с видом на центральные соборы, UPD: на столах не было зубочисток.

В Москве знакомый удивился моему удивлению: "А ты что, не знал, что в Европе зубочистками не пользуются?". Я поскреб в затылке - вроде бы в Чехии и Италии зубочистки были.

Кто часто там бывает - что, правда не пользуются?!

Софтостроение способом "дотянуть до зарплаты"

Еще ценные наблюдения от d_zh:

...в условиях, когда на зарплату через два месяца деньги еще нужно заработать, а не взять из бездонных закромов, потенциальный клиент может внести существенные коррективы в то, чем мы занимаемся на следующей неделе. Поэтому и программисты с "правильными архитектурными подходами" зачастую остаются непонятыми и неоцененными по достоинству: архитектура должна позволять быстро внести любые изменения, в том числе те, которые изначально не планировались как класс. А это, как правило, такая архитектура, которую интуитивно делают студенты, а не специалисты с 10-летним опытом, сотней прочитанных книг и обостренным эстетизмом :-) Ну и еще привет любителям запойных рефакторингов - в ту же топку. Гигиенические процедуры не должны превращаться в самоцель. Красивый код сам по себе - ни разу не ценность.

Как говорил мне 15 лет назад один мудрый психолог из Одессы, Правота - это 20 килограмм золота в кармане утопленника. Так и здесь: правильная архитектура вместо требующихся "завтра к утру" красивостей (без которых не заплатят) - это вон из профессии. Потому что в реальном мире платят только за то, что можно потрогать руками.

Управление требованиями, или Когда ошибка гарантирует провал

В разработке софта (да наверное и в любой другой разработке, том же бизнес-планировании) существует постоянно забываемое правило: цена ошибки в архитектуре в 100 раз выше цены ошибки в коде. Исправить код - вопрос дней или даже часов; исправить архитектуру - значит по-сути сделать проект заново.

Но существует ошибка, исправить которую вообще невозможно. Это ошибка в исходных требованиях к продукту. Гляньте к примеру Top 10 Epic Fail in Product Launch. Если Вы выпустили Windows Vista, и она "не пошла", поскольку защищенность от вирусов и DRM оказались совсем не тем, что хотела публика - проект умер окончательной смертью. Инвестиции в него уже никак не вернуть.

Вот почему я обращаю Ваше внимание на заметку gaperton, посвященную управлению требованиями:

Термин «сбор требований», иногда встречающийся в литературе — отражает это недопонимание. Требования — не грибы, чтобы лениво разгуливая по лесу, увидев его, сказать: «О! Требование!», сорвать, и положить его в корзину. Они больше напоминают редкоземельный металл, добываемый нечеловеческим, рабским трудом в «этих проклятых рудниках» (кхе-кхе).

P.S. Заметка на самом деле совсем о другом (о том, что хорошему руководителю Скрам не нужен), но фраза мне понравилась. Жаль, конечно, что о самом "сборе требований" gaperton ничего не написал. Ну вот как научусь, сам напишу :)

Город Солнца нашего времени - а не спроектировать ли нам Наукоград?

Зная по опыту, что "личные блоги все, комьюнити ничто", предлагаю обсудить интересующие нас вопросы не в Нейрограде (хотя там есть что почитать, особенно по инструментарию группового мышления), а прямо здесь.

Задача: прыгнуть выше головы. За счет неведомо каких преимуществ (их тоже надо спроектировать) обеспечить конкурентное превосходство отдельно взятого территориального образования над другими формами организации "наукоемкого" производства. Другие формы: 1) транснациональные корпорации, 2) госкорпорации под управлением "питерских", 3) цепочка стартапов с последовательной перепродажей проекта разным владельцам, 4) ... ну, сами подставите.

По моему мнению, преимущество "наукограда" может быть только в одном: в сокращении дистанции от одного "классного специалиста" до другого, и от одного опытного цеха (где куют чипы) до другого (где варят биотехов). То есть - в повышении транспортной связности (информационную связность создает Интернет, но ее недостаточно - ткнуть пальцем в монитор или посмотреть, что там не так с деталью, можно только "вживую").

Итак, дальнейшие рассуждения строим исходя из предположения, что классные специалисты, собранные в одном месте, будут работать продуктивнее, чем будучи разбросаны по всему миру. Особенно если их будут обслуживать столь же классные специалисты в сфере услуг (менеджмент, клининг, бутербродинг, бэбиситтинг...). Возникает вопрос: как должен быть выстроен такой Наукоград:

- с точки зрения градостроительной архитектуры (нужен ли особый проект расстановки зданий, или можно брать любой брошенный городок и расселять спецов прямо в нем)?

- с точки зрения экономической архитектуры (будет ли Наукоград единым юридическим лицом, или конгломератом фирм с хитрыми отношениями собственности и управления)?

- с точки зрения политической архитектуры (будут ли в Наукограде свои законы и своя полиция, или же за порядком будут присматривать назначенные ООН Евсюковы)?

- с точки зрения социальной архитектуры (будет ли ремонт дорог личным делом каждого домовладельца, или же финансироваться из социальных взносов, собираемых с граждан)?

Ну и последнее по списку, хотя наверное первое по важности: а как скоро такой Наукоград сможет выдать первую продукцию, что это будет за продукция и кто ее будет покупать?

P.S. Мне тут кое-кто сказал, что вопрос о создании Наукограда в Правительстве в принципе решен, вопрос лишь в том, кто бюджет пилить будет. На ту одну миллионную шанса, что бюджет захотят потратить по назначению, и рассчитано это предварительное обсуждение.