Реалии повторного использования кода в современной разработке

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

Но мы обо всем этом скромно умолчим 🙂

Поддержим отечественного производителя

Делать свою ос, совместимую с чем-то там, это баловство, изобретение
велосипеда, и вообще проеживание государственных денег ничуть не хуже
чем на постройке правительственных дач. Нужно знать что присутствует
на рынке в виде готовых продуктов или технологий, и уметь применить
это в своем бизнесе, или в бизнесе государственных масштабов. А такая
политика что нам иностранного не надо, у нас будет хоть слабенькое и
сырое, но свое, – это нацизм, достойный Гитлера. Прежде чем давить
пиратов, нужно понять, что от этого выйграет конечный потребитель,
ради которого вообще все и происходит. Я как разработчик и управленец
хорошо представляю, что если мой продукт интересен, то его купят,
потому что к этому прилагаются такие необходимые действия как
установка, поддержка, обучение персонала, обновление и т.д., и
огромная толпа халявщиков в России не только не принесет мне убытка,
но наоборот, на каждом углу напишет “а где достать кряк к …”
– “а что это?” – “а это такая программа классная, делает то-то и то-то”.
И лозунг “поддержим отечественного производителя” – огромнейшая
нелепость в этой сфере рынка и профанация для дураков, потому что если
отечественному производителю хочется быть поддержанным – он идет и
продает свой продукт в другие страны, благо что в IT-сфере и через
интернет нет разницы куда продаешь, за исключением некоторых
бухгалтерских проблем, и при этом, замечу, осуществляется ввоз валюты
в страну…

Покажите примеры удачного дизайна, товарищ

На мой взгляд, основной, единственно понятный и легко применяемый критерий правильного веб-дизайна – это “когда в дизайне нет ничего лишнего, кроме логотипа”, т.е. нет ни одного элемента, у которого нет функционального назначения. Например, сайты mail.ru, yahoo.com, tnk-bp.ru этому признаку достаточно полно отвечают.

Когда такие лишние элементы есть, то легко прочитать мысли команды разработчиков и заказчика:

“Вчера я выучил два новых фильтра фотошопа, сейчас попробуем!” – думает дизайнер, читая анекдоты.

“Я не умею структурировать информацию, пусть ребята нарисуют здесь два десятка визуалов, зато будет красиво” – делая серьезное лицо, думает арт-директор.

“Контент? Стандарты юзабилити? Я даже в школе таких слов не слышал. Нам надо чтобы было как у всех – о компании, новости, проекты” – хмуря брови, думает старший менеджер.

“Хочу чтобы вот здесь в уголке вертелся наш логотип” – потирая руки в предвкушении, думает генеральный директор.

Также легко предугадать и мысли будущих посетителей сайта:

“Блин, очередной тупой сайт” – думают продвинутые, вспоминая Кирсанова и Нильсена.

“А слабо было сделать кнопку Пропустить Заставку?” – думают счастливые владельцы выделенных каналов с оплатой траффика, вручную находя и добавляя в избранное ссылку на /index2.php

“М-да, похоже этот сайт надо смотреть с отключенной графикой” – думают модемные пользователи, внося адрес в рекламный фильтр.

“Выложен прайс-лист трехмесячной давности? Похоже, проще им позвонить. Хотя, вот в соседнем окне открылся другой сайт” – закрывая окно, думают потенциальные покупатели…

В чем суть? В анекдоте:
На светофоре остановился мерседес, а по пешеходному переходу идет панк с раскрашенными волосами и обвешанный разными феньками. Из мерседеса высовывается лысая голова с толстыми щеками:
– ты, типа, нафига такой разрисованный весь?
– ну как это, чтобы типа выделяться!
– умом надо выделяться, парень! – говорит лысая голова, поднимая
стекло…

Зачем вообще много доменов покупать?

Наша задача – охватить как можно бОльшую часть целевой аудитории.
Заметьте, поскольку большинство людей, озадачивающихся данным вопросом, явно ПОКА не готовы к пониманию целевой аудитории, ее фильтрации и конвертации, речь и идет
о задаче просто широкого охвата.

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

Большое количество доменов решают две основных задачи:

1. Варианты орфографически неправильного или искаженного написания
наименования фирмы в транслитерации (это очевидно). Хороший домен
должен успешно проходить радиотест – т.е. должен правильно
записываться на слух при передаче по радио и телефону. Попробуйте
однозначно набрать услышанное “вэ-вэ-вэ.недвижимость.ру” – если бы
фирма “Фаворит Эстейт” удосужилась потратить $20 в год на второй домен
с буквой “g” вместо “j”, она бы могла получить в два раза больше
посетителей…

2. Варианты, охватывающие профили деятельности компании. Это стандарт
в “зарубежном” секторе, и только-только появляющаяся мода “у нас”. Что
фирма делает – то и пишем: fotoprinting.com, cottagebuilding.com,
carwashing.com – я набрал эти слова наугад, а домены существуют.
Попробуйте набрать их в зоне .ru – не существует ни одного. Почему?

Про быстродействие сайта

Разные странички могут генерироваться
с совершенно разной скоростью. Даже одна и та же страничка, например,
для неавторизованного юзера и для авторизованного – может
генерироваться с разной скоростью. Может быть организован кэш
средствами CMS – и система сама будет решать, например, что
быстрогенерящиеся страницы надо генерить, а медленногенерящиеся –
брать из кэша с перегенерацией раз в сутки. Так же CMS может измерять
текущую посещаемость и при ее повышении – начинать генерить страницы
только для каждого второго, каждого третьего юзера, а промежуточные
запросы брать из кэша. Система может распределять запросы между
зеркалами баз данных и физическими зеркалами (как это делает Яндекс),
и так далее.

Поэтому то что вы хотите – встать рядом с секундомером и все сразу
замерить – бессмысленно, так же как меряться попугаями в 3DMark. То
что вы на самом деле хотите – называется “профилирование”. Это работы
по определению времени выполнения участков кода и SQL-запросов.
В вашем случае самый простой способ – это взять имеющуюся систему,
внедрить в нее нужные счетчики (ваш программист должен написать
необходимые функции, позволяющие замерять длительность выполнения
каждого SQL-запроса, каждого метода PHP, и выводить все это в красивую
таблицу) и установить на разные хостинги для сравнения. Далее, ваш
программист должен воспользоваться ПО для имитации нагрузки на систему
и сделать это несколько раз в сутки по каждой системе на каждом
хостинге.

На колокейшене одновременно с этим следует запустить через шелл
команду top (для юникс-хостинга) и наблюдать за загруженностью
процессора. Получится ли это на shared-хостинге – неизвестно.

Если системы у вас нет, то ваш программист должен сделать
предположения о том, какие типы SQL-запросов и какие функции PHP будут
в ней реализованы. Далее, создаются имитационные файлы, выполняющие
эти запросы и эти функции – просто с целью замера времени, и после
этого так же выполняется нагрузочное тестирование.

Скорость канала может влиять на быстродействие сервера только
в некоторых экзотических случаях.