вторник, мая 04, 2010

Итоги апреля, No Escape From Reality

Апрель прошел. Подведем итоги. Апрель - это четвертый месяц в году. И четвертый месяц я тружусь над своим проектом :) Уже довольно много. Дедлайн в конце декабря, задаю себе вопрос - расслабляет ли это меня? Может быть. Хотя с другой стороны, стараюсь делать все на совесть, чтобы не было потом стыдно за себя самого. И, как следствие, появляются новые мысли, которые корректируют мое представление о том, каким должен быть проект. Вроде бы если поспешил, то уже бы закодил не то, что надо. А пока думал, закодить еще не успел, и не успел наделать ошибок, которые пришлось бы исправлять. Т.е. процесс идет размеренным темпом.

В апреле также пришлось заниматься левыми делами, даже не было Интернета. Но в принципе, он мне и не был нужен. Если вы помните, месяц назад я размышлял по поводу стратегии развития проекта. Что делать - аутсорсить или нет. В итоге я принял решение, что буду ту часть проекта, которая осталась, делать сам. Возможно, будет аутсорц, но после того, как уже будет основной скелет. Т.е. необходимо дать вектор развития. Ушло бы слишком много времени на объяснения фрилансерам, что именно мне нужно. Легче это самому закодить, чем писать длинные письма.

Собственно, для кодинга оставшейся части я выбрал новую Visual Studio 2010, которая как раз вышла в апреле. К нему вышел и Microsoft SQL Server 2008 R2 в конце апреля. Так что я чувствую себя сейчас вполне комфортно :)

Следует также отметить, что для кодинга я буду использовать ASP.NET MVC Framework 2.0 и новый Microsoft Entity Framework 4.0. Продукты совершенно новые (зарелизились в апреле) и сложно найти толкового фрилансера (хотя найти вполне реально, на примете уже есть). Поэтому я решил выучить все сам. В конце концов, не каждый фрилансер сделает проект так, как могу сделать его я. В итоге весь апрель ушел на чтение этих двух книг:



(на английском)


(на русском, но из-за того, что книга по asp.net mvc 2.0 еще не вышла в печать даже на английском, читал русскую версию по asp.net mvc 1.0).

Конечно, пытливый читатель уже подумал - "Рома, да зачем тебе все это, бери php/ruby/mysql и в путь". Но есть несколько "НО". Во-первых, используя все эти технологии, я избавляю себя от геморроя. Я буду намного меньше кодить, чем раньше. И будет в разы меньше бездумного кодинга чем у любого php-программиста. Все это позволит мне сделать красивое решение, которое можно будет легко поддерживать и расширять. И если будет простой, легкий и понятный каркас, то его будет намного легче отдать на аутсорс.

Я бы мог написать много слов о преимуществах этих технологий, но блог все-таки не о том :) Скажу лишь, что для веб-проектов, это сейчас решение номер 1 в мире. Создать хороший сайт можно просто и быстро (если, конечно, знаешь как). Можно делать небольшие сервисы/сайты под партнерки за очень короткий срок. Чего стоит возможность автоматического создания базы данных на основе визуальной модели и связи между объектами! Т.е. рисуем объекты, продумываем как они должны взаимодействовать друг с другом и ждем кнопку "создать базу данных". Разве не круто? :) Раньше приходилось очень долго дрочить БД, делать привязку сущностей к полям и т.д.

Вы все еще дрочите стандартные шопы? Они уже давно не рулят. Однажды я делал сайт под mp3-партнерку на asp.net, создание сайта заняло где-то 5 дней + 5 дней на отладку и доводку. Сейчас это полностью отняло бы у меня три дня. В прошлый раз я вывел сайт на доход в 100 баксов в день (правда, через несколько недель получил пессимизацию и забил на него).

У меня ушел месяц на знакомство с этим всем. Получилось как в мультфильме - "лучше день потерять, потом за пять минут долететь". Можно было и сократить срок, но опять же, я решал параллельно разные дела в реале, поэтому таскать с собой книжку было очень удобно.

=======

Наблюдая за всеми остальными людьми в вебмастерском сообществе, становится очень печально. Приведу выдержки из бомжеленты:

За апрель вышло около 80К рублей, а денег все равно мало. Походу их всегда мало будет. Ну и похуй.

Итоги апреля: без изменений. Доход с рефов в сапе все падает и падает..

Сайту под фарму стало плохо, ещё в прошлом месяце, а замена ему никак не может выйти в топы.

За полгода в тае заработано 150-200к в основном на фрилансе...

Второй вопрос про прогон по каталогам в рунете. Есть от этого какая-либо польза в виде трафика или нет? Прогнал 5 сплогов через кого-то на серче

Да, ребята. Вы все еще живете во вчерашнем дне. Я уже давно говорил, что пора прекращать делать дорвеи и сайты для продажи ссылок. Яндекс всех побанил, и все сидят и кусают локти. 150-200к рублей за полгода -- маловато. Собственно, для многих эта сумма потолок. Особенного внимания заслуживает комментарий "денег все равно мало. Походу их всегда мало будет". Наконец-то! До некоторых уже дошло. А когда дойдет до вас?

Я специально пишу в таком ключе, потому что знаю, что 99,9% из всех, кто читает мой блог не пишут отчеты (которые, конечно же не самоцель, но реально помогают), не знают что будет через месяц, что будет в следующем году. Надо думать о будущем, а вы все о прогонах по каталогам, SEO, ссылках. Многие этого никогда и не поймут, мир меняется, надо меняться вместе с ним. Но лично все равно, будет ли кто-нибудь создавать что-то значительное, или будет кормить сапу, делать дорвеи. Из всех людей максимум 1 процент что-то сделает. Из этого процента только десятая часть доведет дело до конца. Ну а остальные будут пешками в чужой игре, собственно, они сами и выбирают себе эту роль.

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

Комментарии: 15:

Blogger samlowry сказал(а)...

А кто мне с суровым видом тёр про то, как ты понял соль жизни и как у тебя всё шоколадно с наёмниками? :D

Самое забавное — что я тебя послушал, ибо програмить у меня получается паршиво.

А лучше всё-таки напиши про преимущества фреймворка. + про быстродействие и то, под какие платформы это. Така винду?

12:53 PM  
Blogger Roman Pushkin сказал(а)...

Хотя в любом случае, я сделаю основу. После нее будет легче с наемниками. Все сведется к написанию и расширению.

Преимущества фреймворка.

Можно начать с того, что MS Visual Studio 2010 лучшая среда на сегодняшний день для написания JavaScript кода. IntelliSense (подсветка кода + подсказки) работает с такими штуками, как jQuery, причем работает очень хорошо. На сегодняшний день это самый полноценный редактор JS (ИМХО, конечно, тут и далее).

Про быстродействие можно с уверенностью сказать, что это намного быстродейственнее пыха и ruby. Facebook, например, написан на пыхе. В итоге им пришлось сделать тулзу, которая делает из пыха C++ код для того, чтобы сократить расходы на серверы + электричество. В ASP.NET о быстродействии подумано изначально. Там код сначала компилируется, а потом уже откомпиленный исполняется. Причем, все это происходит прозрачно, т.е. не надо об этом думать, просто пиши и все.

ASP.NET MVC -- проект с открытым исходным кодом, а Entity Framework не привязан к какой-либо БД. Существуют реализации под *nix, но они пока сырые. Так что только винда пока.

Кстати, об Entity Framework стоит сказать следующее. Это универсальное решение, которое работает не только с Microsoft SQL Server, но также и со всеми остальными. Они сделали так, что можно написать своего провайдера, так что написав однажды, можешь легко переходить с одной БД на другую. Т.е. в коде ты по сути не пишешь никаких SELECT'ов, которые напрямую обращаются к БД.

В коде нет никаких привязок к конкретной БД, и Entity Framework 4.0 + .NET позволяют делать так, чтобы избегать сложного кода. Тебе не надо писать запросы с выбором конкретных полей из базы данных, потом проверки этих полей. Там просто ты создаешь объекты, и работаешь на более высоком уровне абстракции (не в ущерб функциональности).

Например, применительно к партнерским программам (представим, что мы делаем партнерку), чтобы создать нового юзера просто говоришь

User user = new User();

Если этот юзер пришел по реф-ссылке партнера, то ты говоришь что-то вроде:

user.Partner = partner;

Если ты хочешь получить всех юзеров конкретного партнера, то делаешь так:

partner.Users

1:59 PM  
Blogger Roman Pushkin сказал(а)...

Далее в цикле ты у всех партнеров юзера можешь прописать комиссию, например. И это у тебя будет примерно такой код:

foreach(User user in partner.Users)
{
user.Rate = 0.5; // комиссия 50%
}

Все! Т.е. никаких update, select from where и т.д.

ASP.MVC позволяет делать так, чтобы в твоем проекте было все грамотно разделено на части, чтобы самому не запутаться. Ну и, конечно, сделать так, чтобы веб-сайт был только веб-сайтом, а вся логика была отдельно. Также избавляет от кучи головной боли.

Например, делаешь ты форму, которая принимает три параметра (страница регистрации, допустим): login, password, email

Вместо того, чтобы вытаскивать эти параметры с помощью каких-либо функций типа $REQUEST["login"], у тебя будет метод:

void register(string login, string password, string email)

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

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

А тут все просто. Сама среда разработки, конечно, играет большую роль.

Про MS SQL Server я уже молчу, но ты будешь приятно удивлен насколько там все удобно по сравнению, например, с MySQLAdmin :) Ну и по быстродействию это намного-намного лучше.

В этом году Microsoft зарелизили очень много разных штук для разработчика. И эти штуки, в отличие от всего остального зарелизенного ранее, являются доделанными до логического конца. Раньше, например, было одно, не было другого (был, например, кастрированный Entity Framework или классический ASP.NET, который обладал некоторыми недостатками, был и MS SQL Server 2000, тоже не всегда то, что надо). Сейчас есть все, для создания любого типа приложений. Начиная от самых простых и заканчивая самыми сложными.

1:59 PM  
Blogger homakov сказал(а)...

1. Ты доказываешь по сути что "фрэймворки - хорошо",а не асп - хорошо.
Для пхп есть 2 фрэймворка - codeinginter и zend и на них ты пишешь как раз приблизительно так $user->name $user->save() etc

Более тго, на Ruby on rails все и того удобней, например
create :signup, :available_to => "Guest",
:params => [:name, :email_address, :password, :password_confirmation],
:become => :active

по поводу скорости - MS изначально тормоз, это факт или не согласишься? Linux как сервер это норма.
Также - ты ориентируешься на посещаемость facebook? Я не верю, 2х серверов хватит на любой проект. Ruby1.9 кстати адски быстрый и красивый, ты это сам знаешь.

Поэтому все твои доказательства - субъективны) Ты просто привык к этой технологии и IDE и борешься за них (под одни только рельсы с десяток IDE). И я не предлагаю тебе изучать python/ruby etc потому что они круче продкутов ms, просто хочу постоять за любимые продукты, как и ты :)

2:27 PM  
Blogger Yuri Volkov сказал(а)...

Скажу лишь, что для веб-проектов, это сейчас решение номер 1 в мире

Ruby, Rails - FTW:
1) бесплатно
2) офигеть как быстро можно писать код, даже без IDE
3) основной затык в высоконагруженных веб приложениях - работа с БД.

Хотя это я так - со своей колокольни, кому что ближе :)

И четвертый месяц я тружусь над своим проектом :) Уже довольно много. Дедлайн в конце декабря

Что за проект? или ты в stealth mode?

3:47 PM  
Blogger Roman Pushkin сказал(а)...

То, что MS изначально тормоз - не соглашусь. Даже в самом предложении "MS изначально тормоз" видна бездоказательность суждения. Т.е. тормоз изначально и все, нечего тут доказывать.

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

Python, ruby и пых хороши. Но сравнимой, но MS их сделал. В апреле. Ты, наверное, не смотрел еще эту среду, и новую студию себе не скачал. Ведь она вышла только 12 апреля. Поэтому для объективной оценки надо попрограммить как я, и там, и тут.

"Не верю" -- не юридический термин. К сожалению, это не холиварный блог, тут принято судить или пытаться судить объективно. В принципе я согласен, что и пых, и все остальное тоже нормальная вещь, но MS всех уделал :) Таково мое мнение (я это сразу и сказал - ИМХО).

Посыл понятен, просьба не холиварить :)

6:12 PM  
Blogger Roman Pushkin сказал(а)...

Yuriy Volkov, stealth mode.

Если ничего не получится, спалю и сорцы выложу. Кстати, надо бы мне для picbit'a сорцы все выложить.

6:15 PM  
Blogger samlowry сказал(а)...

Роман, ну то, что в .NET реализована туева куча человекочасов, и таких фреймворков больше нет — я слышал. А вот уделали ли — примеры есть топовых сайтов на таких технологиях?

7:37 PM  
Blogger Roman Pushkin сказал(а)...

Ну вот, например, rbkmoney.ru делал мой кореш, он был ведущим программистом в команде.

8:20 PM  
Anonymous Дмитрий Боровицкий сказал(а)...

О, а у меня знакомый учредитель rbkmoney. $40 млн оборот в месяц, если не врет.

12:45 AM  
Anonymous Алексей К. сказал(а)...

Плюсану с торону Ruby on Rails.
Сам на нем разрабатываю уже не первый год.
Перешел с пыха. Асп также пробовал. Тогда он был неповоротлив дял быстрой разработки под веб. Сейчас они тоже приходят все более к идеологии рельс.

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

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

Но зато какой кайф от быстрой разработки основной части проекта! А в сложных проектах, как ты успел заметить, во время разработки все успевает 10 раз поменяться. И здесь самым важным является именно скорость разработки.

Для большинства проектов это оправданный путь. Лишь немногие узконаправленные задачи могут быть поставлены в жесткую зависимость от скорости самого языка. Все больше ценится время разработки и легкость модернизации.

4:20 PM  
Blogger Roman Pushkin сказал(а)...

"Тогда он был неповоротлив дял быстрой разработки под веб. Сейчас они тоже приходят все более к идеологии рельс"

Ну на самом деле никакой "идеологии рельс" нет, эта идеология была придумана давно, и впервые воплощена в законченном продукте именно в рельсах. А по отдельности была везде, и в asp.net тоже, в виде сторонних продуктов. И словосочетание "приходят" уже не актуально. Пришли и перешли уже.

Рельсы уже многого не могут, чего может .net + asp.net mvc + entity framework 4.0. И все это работает стабильно и быстро.

Сегодня у нас с корешем состоялся диалог:


X: еще на Жабе кодю хуйню

Roman: писец
а что на жабе?)
почему такой выбор?)
условие заказчика?

X: да нет... куча клиентов висят на порту и ждут
как только происходит событие, сервер сообщает им об этом
и отрубает

на Руби эта хуйня почему-то сосала...

занимала 20 строчек, но сосала хуй :)


Рельсы, да, рулят. Но видишь, и ты переписываешь какие-то участки на Perl'е, кто-то еще на Java.

5:18 PM  
Blogger samlowry сказал(а)...

Ну, громкие слова про РоР — ничто иное, как громкие слова. Я даже на Джангу затрахался искать проггеров. Если в PHP дофига лохов-школьников, которые тяп-ляп умеют делать, то в Джанге — эта проблема ещё хуже: программистов вообще мало, но школьников, обчитавшихся хабра — до жопы. Думаю, что такое же и в РоР.

Про «впервые в Руби» — эт ваще идиотизм:
MVC was first described in 1979[2] by Trygve Reenskaug, then working on Smalltalk at Xerox PARC. The original implementation is described in depth in the influential paper "Applications Programming in Smalltalk-80: How to use Model–View–Controller".[3]

Короч — нездоровый пафос. И, как раз, когда с умным видом говоришь про быстродействие — называй живые хайлоад-проекты на языке.

Роман, кстати — Rbkmoney.ru звучит впечатляюще только из-за приставки РБК. А где хайлоад-то? Он по Алексе — рядом с моим блого м по траффу.

5:33 PM  
Blogger Roman Pushkin сказал(а)...

Ну тогда bing.com посмотри :) Это на asp.net

7:37 PM  
Anonymous Алексей К. сказал(а)...

О боже, а говорили не место холивару. Согласен "идеология рельс" звучит некорректно. И может быть это даже не первая реализация идеологии mvc, но одна из первых популярных, в которой она реализована полностью нативно, без костылей. И реализована давно, а значит с серьезной поддержкой и с минимумом граблей.

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

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

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

Ну а живых проектов на рельсах немало. Весьма популярных ;)
Никто не говорит что они полностью на рельсах, но важен быстрый старт.

9:05 PM  

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница