Archive for the ‘Мысли вслух’ Category

Ацпект.

Четверг, Сентябрь 25th, 2008

Сижу вот я на завалинке, читаю книжку про аспектное программирование. Блин, умные же люди бывают. И придумается им такое.

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

Так вот, возвращаясь к умным людям. Они, что же придумали. Что можно описать в отдельном файле что-нибудь типа — в начале всех функций класса A, и функций x,y класса B — делать проверочку прав и только если она прошла то вызывать саму функцию. Выходит, что и овцы целы (классы продолжают делать, что им положены) и волки сыты (авторизацию проводим).

Скажу сразу, что пока я не добрался до места в книге, где описано, как это реализовано. Какое-то странное предчувствие, что для языков с сложным синтаксисом и большим количеством разных изысков (читай C++) , движок это поддерживающий должен быть мягко говоря сложным.

Тем не менее, думаю, что это действительно следующий шаг за ООП. Хотя он конечно, призван не заменить, а дополнить его.

Интересно вообще, какого граница декомпозиции и компактности языков программирования? Думаю вопрос на самом деле не корректный, но тем не менее…

Просто, по большему счету фактически все развитие языков идет по следующему циклу

а. Решаем задачу

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

в. Изобретаем новые методы, решаем этими методами проблему из б)

г. Увеличиваем размер задач.  Переходим на пункт а)

Собственно интересует предел буковки в). Ведь можно себе представить ситуация, когда попытка оптимизации и упрощения уже не будет приводить к результатам (ну типа, как попытка заархивирвоать уже заархивированный файл).

Вот такая, вот сборка мыслей по поводу аспектного программирования.

Так что, очень рекомендую почитать что-то по этому поводу. Прекрасно прочищает мозги.

Кстати, у меня есть стандартный вопрос на собеседование — «Чем вам НЕ нравиться язык X (вставить нужное)?».Похоже, добавлю в свой список вопрос — «Чем вам НЕ нравиться ООП»? Вот будет забавно поглядеть, как люди буду дергаться и нервничать.

Виртуальный человек

Воскресенье, Август 24th, 2008

Возникла, а точнее всплыла старая но забавная мысль. У каждой фирмы есть достаточно часто человек который контактирует раз в некоторое время с заказчиками. Например рассылает press release или еще что-нибудь такое одностороннее.

Так вот, идея состоит в том, чтобы рассылать не от имени реального человека (который может уйти из фирмы). А от имени абстрактного.

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

Скажите это параноя или идея для создания класса виртуальный человек?

P.S. Отличный комментарий от Дмитрия:

Можно пойти дальше дабы сгладить психологические аспекты:
1. используется “единый email и единая контактная информация”
2. при этом, в дальнейшей переписке начинает фигурировать “виртуал”, т.е. человек общается не с “отделом тех.поддержки”, а с неким “Петром Андоненко” (не предираться, голова к вечеру плохо имена придумывает).
3. данный человек присутствует исключительно при невербальном общении
4. этот виртуальный сотрудник является лишь прослойкой для взаимодействия с реальным специалистом, т.е. он общается лишь на определенном ограниченном этапе взаимодействия.
5. Берется не имя предыдущего сотрудника, а вымышленное.
6. вырабатываются правила переписки до начала работы такой схемы

Смысл:
— 1+2 пункты дают эффект взаимодействия с живым человеком за стандартным e-mail’ом. Т.е. уже ломается представление о том, что ты будешь взаимодействовать с Джоном Доу.
— Использование “виртуального” имени позволяет исключить период охлаждения отношений при смене оператора/специалиста по взаимодействию с клиентами/допишите свое.
— Эта схема прекрасно должна работать в отделах с высокой текучкой кадров.
— 5 пункт избавит от отрицательного эффекта, высказанного Kate, т.е. новый сотрудник не пытается изображать из себя некую “тётю Валю”, а изначально знает, что работает под общей маской.
— 4 пункт включил именно для тех, кто говорит о невозможности из-за необходимости живого общения. Этот “виртуал” может выполнять роль некоего диспетчера, т.е. заказчику неинтересна личность конкретного специалиста, он знает, что этот специалист — лишь шестеренка во всем этом механизме, будет общатсья с ним лично, но уже немного в другом тоне. При этом клиента всегда встречает одно и то же “лицо”, что успокаивает.

Мысля о найме.

Пятница, Август 22nd, 2008

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

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

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

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

Мысль странная, но уверен, что имеет вполне под собой реальные случаи 😉

Призрачно все…

Вторник, Август 19th, 2008

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

Что, мне абсолютно НЕ нравиться IT, что вся наша работа — призрачна, как утренний туман. Вроде только что был плотный, а потом дуновение ветерка и уже ничего не видно.

Обидно, все таки, что весь этот код, интеграция компонент, хитрая архитектура и т.п. — просто игра ума и не больше того. Причем даже игра ума, которую толком и не видно…

А все таки было бы здорово, что-нибудь эдакое забабацать своими руками, причем, чтобы оно еще и выглядело пристойно…

У вас возникают подобные мысли или это именно моя болячка?