Восьмое марта. Ну, шестое, конечно, но в фирме поздравляем сегодня. Строгий указ начальника: всем быть в костюмах, включая сисадмина (меня). Ну ладно, так и быть. Свитер снял (борода осталась), надел костюм, пришёл на работу. А костюм у меня белый. А вес — 120 кг без малого. И весь день меня окружали люди, тихонько напевающие: «Ледяной горою айсберг из тумана вырастает…»
Когда человек, умеющий читать документацию, ставит на ноутбук Линукс — выходит удивительно скучно. Он читает доки, потом запускает установщик, создаёт фиксированные разделы небольшого раздела под рут,
/bin
,
/usr
и
/var
, а оставшиеся сотни гигов отдаёт под
/home
. Ещё он читал доки на USB и знает, что ток на одну пару разъёмов не может превышать пол-ампера, поэтому дополнительный «хвост» от носимого жёсткого диска нужно втыкать в разъём из другой пары, желательно — подальше. В результате всё работает именно так, как хотелось с самого начала, и никакой байки из этого не получается.
Казалось бы, филология — наука о слове. И специалист в ней должен со словом дружить и уметь читать доки, благо сейчас в сети их более чем достаточно. Тогда и не будет историй про админскую ауру, появляющихся лишь от незнания рекомендованных умными людьми настроек и методов.
Те, кто застал первые сайты, должен помнить: тогдашние веб-мастера всем элементам на экране придавали объём, рисуя «выпуклые» и «вдавленные» рамки. Если на экране таблица — она как будто сделана из проволочек. Если кнопка — то выпирающая из плоскости. Примерно так же выглядели программы, написанные в самой популярной среде разработки того времени — Дельфи.
Программы на Дельфи начали терять актуальность, а пришедшие им на смену часто использовали виджеты из MFC — с тонкими линиями, если и придающими объём, то чуть-чуть. И веб-дизайн отреагировал: строгие тёмные тонкие рамки в пиксель вокруг кнопок и ячеек таблиц.
Что же касается цветового решения — одно время был мегапопулярен вырвиглазный сине-зелёный дизайн, удивительно напоминающий тему по умолчанию Windows XP. Но вот вышла версия Windows с новым интерфейсом Aero, и в веб-дизайне начали использовать стиль «Веб 2.0» — полупрозрачные элементы, трёхмерные кнопки с полутенями и градиентами.
И вот сейчас одно из последних веяний моды — плитки с монохромными пиктограммами. Догадаетесь, откуда это?
Дизайнеры, может, хватит уже тырить чужие идеи, просто срисовывая интерфейс программ, за которыми вы сидите? Или тогда не называйте это дизайном.
А написать сюда заставила мелочь: на одном из сайтов, когда приходило личное сообщение, в строке статуса загоралась красная лампочка. Удобно: красная точка — что-то пришло. Но дизайнеры не дремлют, и теперь вместо этой лампочки — белый кружочек. Если новых сообщений нет — он чуть сероватый, если есть — становится белее. Вот и сиди теперь, вглядывайся: достаточно ли он белый, чтобы идти читать почту, или, может, не очень белый?
Руки пообрывать! Если у одной компании возникли какие-то сложности с отображением хотя бы 256 цветов в своём интерфейсе, то вы-то зачем уподобляетесь?
Устроился в небольшую компанию программистом. Компания предоставляет некоторые услуги своим клиентам. Но предоставляет крайне фигово: больше полусотни пользователей не держит.
Начинаю разбираться, что почём. Первым делом настораживает, что сессия длится один пакет. Следующий пакет так же должен быть с авторизационными данными.
— Ну, у нас же реализована архитектура «запрос — ответ»! Нам же не надо держать TCP-сессию! — говорит программист с 25-летним стажем.
— Гм, — говорю я и лезу в код сервера.
Лучше бы я этого не видел.
На каждый входящий пакет создаётся поток-обработчик, который умирает сразу же после того, как отсылает пакет обратно. И, естественно, убирает за собой все данные о клиенте. Что характерно, поток-получатель парсит HTTP-заголовок.
Начинаю переписывать код. Сперва создаю пул потоков-обработчиков, но очень быстро утыкаюсь в ситуацию, когда у меня 100500 потоков на 24-ядерной системе. В общем, ситуацию это спасает, но не намного.
Далее избавляюсь от авторизации: клиенту передаётся его сессионный ID, и уже дальше работаем с ним.
Потом избавляюсь от пула потоков, создав очередь запросов, из которой могут брать любые рабочие потоки.
Потом делаю ещё одну страшную вещь: переношу очередь запросов как можно ближе к получению пакетов, до парсинга HTTP-заголовка. Результат — восьмиядерный рабочий комп выдерживает стрессовую нагрузку до 100 тысяч пакетов в секунду.
На следующую неделю компания закрывается: в связи с кризисом отвалились три крупных клиента, и бюджета на программистов не хватает.
С завидной регулярностью убеждаюсь, что в индийском министерстве образования поселился жирный тролль 100500-го уровня. Именно этот тролль пишет учебники делового этикета для индийских колледжей и университетов. И именно он вставляет в разделы с образцами деловой переписки фразу: «Kindly do the needful ASAP».
В чём загвоздка? В трактовке выражения «do the needful» на разных континентах. Написав в конце письма эту фразу, индусский пользователь думает, что он вежливо попросил адресата поскорее приложить необходимые усилия для решения проблемы. Вот только для его американского адресата это выражение уже с полвека как означает «посетить сортир». А тролль? Нагуливает жир с каждым новым студентом, сдавшим зачёт по вежливому посыланию бизнес-партнёров в пара… Простите, переговорную комнату.
Разумеется, можно сделать экран смартфона чёрно-белым, клавиатуру — выдвижной QWERTY, добавить ушки для крепления на стену и ножки для установки на столе…
Ой, что это?! У нас получается нечто вроде коммуникатора из 2002 года! Толщина и вес за счёт клавиатуры увеличивается, фоточки котиков смотреть больше некрасиво, зато можно умельчить интерфейс и вернуть стилус!
Теперь я начинаю понимать некоторых представителей старшего поколения, до сих пор пользующихся дисковыми телефонами. А что, удобно же: пальцем в дырку зацепил — и др-др-др-др! И если номеронабиратель сломался, можно было номер набрать, быстро стукая по рожкам держателя трубки. Не то что нынешние, у которых и кнопок-то человеческих нет!
Кое-кто ещё помнит времена, когда даже у ноутбуков были экраны 4:3, причём у некоторых аж чёрно-белые. Это было весьма удобно. Затем человечество изобрело DVD, вследствие чего все экраны поголовно, в том числе и ноутбучные, сделались 5:4, и это было ещё более удобно, так что 4:3 никто уже и не покупал. Потом экраны сделались 16:9, и это стало настолько удобно, что только отдельные маргинальные элитные производители могут позволить себе 8:5.
Так же и со смартфонами: простор у дизайнеров ошеломляющий. Навскидку только в области юзабилити приходят в голову монохромный экран (неделя от одной зарядки, а?), выдвижная клавиатура хотя бы о 60 клавишах (ведь когда-то большинство смартфонов таки было с QWERTY-клавиатурами), встроенное приспособление для быстрого крепления на вертикальную или наклонную поверхность (помните, как бойко расходились подстаканники для классических телефонов?) и прочие нарушения классического дизайна. Ну, или, как с телевизорами любят делать, добавить бесполезные, но очень красивые финтифлюшки вроде подсветки задней стороны или круглой дырки посередине. А маркетологи продадут что угодно кому попало, тут волноваться не надо.
Уважаемый автор истории «Будут деньги — будет пища»! Без сомнения, вы хороший программист. Однако, если бы ПО делалось по вашему предложению (а такие попытки были лет 10–15 назад), то случилось бы следующее:
Кассир пробивает покупки и показывает вам итоговую сумму.
Вы оплачиваете покупку.
Кассир говорит что-то типа: «Ой! Бумага закончилась! Подождите три минуты — схожу на склад».
Вы уходите со словами: «Я спешу, мне чек не нужен».
Кассир отменяет продажу и кладёт деньги себе в карман.
В итоге магазин шаговой доступности становиться убыточным, закрывается, и вам приходится ездить за хлебом и прочим к чёрту на кулички.
Прежде чем делать предложение по оптимизации ПО, учтите специфику отрасли, где это ПО применяется.