metaclass: (Default)
[personal profile] metaclass
.NET и Co - это не мейнстрим, это помойка для однодневных приложений

Сразу скажу, я на дотнете пишу уже года 4 и он меня задолбал весьма серьезно. Но тем не менее, альтернативы в моем случае (опердень с GUI, разрабатываемая в условиях адских ограничений по времени и ресурсам) тупо нет.
Основная причина, конечно, в том, что у меня на нем уже сделано 2/3 любого проекта типа "бд->аппсервер->gui-клиент", на любой другой платформе это все придется делать с нуля.

Но, кроме этого, в других платформах и языках, по-моему, такие задачи вообще не рассматриваются, как класс. Т.е. если GUI - то сделанный вручную, зашит в ресурсы, формы делаются по принципу "один студент-одна неделя-одна форма". А то и вообще GUI никто не рассматривает, потому что язык предназначен для веб- и прочих серверов. Очевидно же, что если основная целевая аудитория - веб-разработчики, то для серьезного GUI это использовать будет невозможно - даже если есть биндинги к GUI-тулкитам, они будут баговые и недоделанные и придется все время тратить на их допиливание. (Хотя, по правде сказать, в дотнете все точно так же - гуй там приходится допиливать постоянно).
Подумал я использовать жабу, для аппсервера. На словах все выглядит красиво - Hibernate, Spring итд итп. На практике, мне придется неделю сидеть только настраивать eclipse, jdk, jetty или томкаты, ant и мавены какие, разбираться как это все интегрировать, как сделать инфраструктуру для разработки. А потом опять с нуля делать все, что у меня уже сделано на ASP.NET (конфигурируемая миддлварь для произвольных баз данных, выставляющая CRUD операции в виде restful сервиса)

[livejournal.com profile] zabivator там по ссылку пропагандирует линукс, емаксы, билд из командной строки, итд. Я серьезно не понимаю, как можно в таком стиле быстро разрабатывать проекты. Т.е., я даже согласен признать, что я тупой, что у меня мозг сломан 15 годами быдлоразработки на дельфи, но я не понимаю, как проект НАЧАТЬ.
Когда приходишь уже на готовое - более менее понятно, скачал исходники, configure/make/install и понеслась. Я понимаю, что это закрывает 99% современного IT, когда народ приходит на проекты, которые делаются 10 до того, и будут делаться 10 лет после, получает инструкции "как включиться в работу", все им настраивается/деплоится с образом специально назначенными гуру-админами и все.

Но у меня обычно все не так. Стандартная ситуация "нужно с нуля сделать совершенно новый проект, нужно выбрать для него платформу так, чтобы не сойти с ума, чтобы по максимуму повторно использовать прошлые наработки, итд".
И обычно это выглядит примерно так: 20-50-100 сущностей предметной области, в лучшем случае их можно оформить в виде независимых редакторов, в худшем - они связаны в сложный адский workflow который нужно контролировать, чтобы юзера в дебри не убрели, разработчиков - 1-2 человека, времени - 2 месяца, причем каждый день будут регулярно отвлекать по мелочам, старым проектам и прочей хрени минимум 2-3 раза. Но зато почти нет оверхеда на коммуникацию, на сбор требований (требования уже известны, т.к. я предметку знаю лучше всех спецов клиетов вместе взятых). Тестирование софта обычно требуется по минимуму, т.к. изначально правильная архитектура не допускает множество тупых багов, а вот с документированием - абзац. Т.е. либо документирование, либо сделать проект вовремя.

Date: 2010-01-27 10:31 am (UTC)
From: [identity profile] potan.livejournal.com
Какая проблема начать?
Текстовый редактор - и вперед!
Правда, в качестве gui я использую web, который, обычно, другой человек разрабатывает.

Date: 2010-01-27 10:47 am (UTC)
From: [identity profile] metaclass.livejournal.com
Ну вот 99% так и говорят "так я ж использую веб, который делают другие люди".

А теперь я объясню, что нужно чтобы например нам начать новый проект:
1) поставить на работе меркуриал, т.к. svn не совсем подходит под наши условия. Во что то выливается - я уже писал недавно.
2) поднять резервный канал в интернет, т.к. основной падает часто, а доступ к серверу нужен.
3) поставить сервер баз данных и наладить у разработчиков доступ к нему, для создания баз(как раз идет этап разработки структуры базы).
4) поднять сервер приложений - это в случае дотнета IIS с настроенным asp.net приложением(dotnet 3.5)
5) поднять тестовую инфраструктуру для сервера - если по простому, это набор скриптов с wget, для проверки работы сервера.
6) сделать разработчикам доступ к базе конфигурации сервера приложений(база данных с гуи-редактором, из которой генерируется код и файлы конфигурации для сервера приложений)
7) сделать репозиторий в меркуриале со стартовой версией проекта, чтобы у разработчиков можно было сразу оттуда достать и начать работать.

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


Date: 2010-01-27 08:33 pm (UTC)
From: [identity profile] zamotivator.livejournal.com
(3) вполне так раскатывается с нуля.
Под убунтой всё такое гавно ставится одной командой apt-get....
+ конфиги для postgres/etc, с указанием путей куда класть.
Или просто скрипт, что пропишет куда чего надо

Date: 2010-01-27 08:35 pm (UTC)
From: [identity profile] zamotivator.livejournal.com
Короче, всё что ты описываешь - под венду делается два дня, не спорю.

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

sudo ./make_project project_name

в скриптах - apt-get / прописывание конфигов куда надо / и так далее

Экономь своё время.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 15th, 2025 05:49 am
Powered by Dreamwidth Studios