Баш майстора Project Manager

21 отговора 0 прегледа
#1

Баш майстора Project Manager

Напоследък видях уникални изпълнения в една щатска фирма как целенасочено се усложнява код. На практика как 5 класа с добра функционалност да бъдат заместени с 30 класа така че да ти трябва 1 ден да разбереш кой кой вика и въобще за какво става въпрос. 1 ден ми трябваше също да вдяна как на една уеб страница се пълни комбо бокс. Нещо дето нормално става на 2 реда.

Какво мислите за всичките ПМ-и която основна функция е да прекарат клиента с колкото се може повече човекочасове и съобразно това подбират технологиите.

В Java мисля това комбо Spring / Hibernate / Maven / Eclipse дава невероятни възможности за тотално осиране на всичко.

Та ето ги 2-та въпроса:

1) Ако ти си ПМ, кои технологии ще избереш така че максимално да усложниш всичко с цел повече работа да има тиймът ти ?

2) Идва някой и ти казва, давам ти ето тази сума(много голяма), моля ти се, не прави простотии и направи нещата максимално оптимизирани и лесни за поддръжка ?

Редактирано от jpenev на

Отговор
в отговор на jpenev #2

Re: Баш майстора Project Manager

1. Всички модни (гейски?) в момента технологии вършат работа.
2. Многото пари развращават. Народа си го е казал - бой, ебане и сръбска музика.

Отговор
в отговор на jpenev #3

Re: Баш майстора Project Manager

1) Ако ти си ПМ, кои технологии ще избереш така че максимално да усложниш всичко с цел повече работа да има тиймът ти ?

Сега, PM не се занимават с избора на технологии...
Проджект менажерите са хора, които в 99% от случайте не са написали и 2 реда работещ код, или образно казано PM това e "камшика, който плющи роба по задника при заповед от по-горната инстанция".

Но нека да не изпадаме в подробности...

Какво би направил "глупака" за да усложни работата на подчинените си...
Ми...трябва да си остане "глупак".

Колкото до технологиите, зависи...Ако говорим за уеб технологии, лично аз бих избрал следното...TDD + Mocking + MVC. Особено ми харесва идеята на "Mocking object-a"...демек докато си летиш в самолета и нямаш достъп до ДБ-то например, да можеш да бачкаш, а не да гледаш в облаците и да си мислиш как да изплющиш стюардесата

Отговор
в отговор на jpenev #4

Re: Баш майстора Project Manager

Бе и мене ми прави впечатление, че в БГ широко се шири заблуда за това що е ПМ и какво трябва да прави той.
На ПМ хич, ама хич не му трябва да се занимава с технологии - той си има други, много по нелицеприятни задачи. За да бъда по-кратък - ако всички във фирмата мразят ПМ-а, но клиентите го обичат - на прав път е.
Тея работи (технологиите) ги решават Архитекти. Май обаче, хората дето стават за архитекти или искат прекалено много, или са решили вече да вземат бъдещето си в свои ръце, както и да е - почти не се намират от таз порода по българските фирми (и обяви за такива почти не съм виждал). После има и дизайнери (също се спестява), на много някой Тийм Лийдер да каже с комбо бокс ли да е или да не е. Пък ако на никой не му пука, може да се остави на девела да си реши (в крав на крайщата както е по спек-а)
Всъщност май в БГ (не че имам наблюдения над десетки фирми, ама като гледам и по-обявите) между Теам Лийд и ПМ не се прави съществена разлика.

Отговор
в отговор на BullDog #5

Re: Баш майстора Project Manager

Верно е че в големите фирми се наложи едно разделяне на отговорностите и Архитекта ги върши тези работи. Но мисля, че идеята ми беше схваната. Та основният въпрос е, ако искаш да направиш нещо за себе си, да е просто и ефективно, кои фреймуърци ще да ползваш ?

Отговор
в отговор на jpenev #6

Re: Баш майстора Project Manager

едва ли е за да прекарат клиента, убеден съм че те са убедени че това е полезна абстрактност която ще помогне в бъдеще. понякога даже са и прави.




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на jpenev #7

Re: Баш майстора Project Manager

Ами ти си го казал: STS (Сптинг+Еклипс), може би Hibernate (ако са само заявки - на ти / дай ми) иначе iBatis или JDBC но не "на голо" (той спринга си има и за JDBC съпорт) + Бавен (Maven)
Ако не ти харесват, не ги ползвай, не е задължително :)
Ти малко ги мешаш нешата - "клиента" го боли фара кво ползваш - на него му пука най-вече за цената (и качеството де). Ако той малко ги разбира нещата и знае, че на ВордПад да пише, пак става за 10 дни, пък ти му искаш като за 50 дни (щот си щял да ползваш феймворк) има голяма верятност да не получиш таз работа. Ако се съгласи, другия път му поискай като за 100 дена - да ъпгрейнеш фреймворка.

Отговор
в отговор на jpenev #8

Re: Баш майстора Project Manager

Изборът на технологий е много важен, ако бъде объркан води до много главоболия.

1. Винаги може да се усложнят нещата, но от това самият ти няма да спечелиш, защото в един момент ще ти се отще да развиваш и поддържаш собствения си код.

2. Много добър анализ на възможностите, избор на развойни средства с добра поддръжка, добра документация и добро познаване от екипа. Стриктна и дисциплинирана работа, добра документация, добре подготвен екип.

Отговор
в отговор на jpenev #9

Re: Баш майстора Project Manager

Това е стандартно. Примерно, бил ли си на гумаджия за спукана гума, който да не ти е казвал, че все пак и джантата е изкривена и все пак гумите трябва да се балансират и напомпат и проверят и т.н. И сметката от 15 лева става 50.

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

--
One day it will make sense.
Отговор
в отговор на Гypy #10

Re: Баш майстора Project Manager

По-интересна е ситуацията в която ти можеш да избираш.

Отговор
в отговор на jpenev #11

Re: Баш майстора Project Manager

Брей, аз си мислих че само в БГ ПМ-ите се занимават с класове..... щото напрактика те нямат нищо общо с факта, че от 5 класа някой дебил е направил 30 :)

Отговор
в отговор на jpenev #12

Re: Баш майстора Project Manager

Целта е от нищо да правиш нещо. От 5 класа правят 50 и за да пълниш комбо ще имаш работа за 2-3 дена.
Иначе ако е 2 реда ще бъде много лесно и робите ще мързелуват.

Отговор
в отговор на jpenev #13

Баклава код е решението

Вкарваш 10 леъра, без да казваш кой какво прави и оттам нататък кодът ще се засере сам.

Всеки програмист като има да прави нещо ще си го ръга в който леър му е удобно и след 2-3 месеца никой няма да разбира нищо.

Също така другия любим трик който съм гледал е да се ползват хоме мейд библиотеки, вместо Spring / Hibernate / Maven / етц, които имат подобна функционалност но са хоме мейд и имат 100 пъти повече бъгове и не правят това, което ти трябва. И като тръгнеш да ги разширяваш обикновено се чудиш къде точно да ръгнеш кода и често не го слагаш в библиотеката, щото за да се пипне тази библиотека трябва разрешение от баш майстора. И така вместо да се ръгне кода, който логически би трябвало да е за тази библиотека, той се ръга на съвсем друго място където ама никой не очаква да е там.

Та тези 2 техники работят на 100%. Лично съм ги виждал на няколко места.

А дали ще ползваш Hibernate или някое друго ORM - няма никакво значение. Но има значение ако си правиш твое ORM.

Отговор
в отговор на jpenev #14

Re: Баш майстора Project Manager

Остави ги 10-те леъра. Въпросът е какво да се ползва, ако се наложи да се прави не за клиент, а за тебе си. Иначе е ясно Second/Third level кешове, JBOSS / JSF и пр., Не е истина колко корумпирана е човешката природа, винаги в началото се започва на чисто и после се извращават нещата. Направо ги съжалявам току що излизащите програмисти от университетите, никога няма да минат през романтичният период на програмирането през който аз имах късмета да мина 1996-1999 година.

Отговор
в отговор на jpenev #15

Re: Баш майстора Project Manager

1. Ако съм ПМ и трябва да засера нещата, просто ще изпълнявам всичко, което ми се подава отгоре, по LIЕO-то (last in, but everything out - NOW!!) по което ми го подават отгоре и ще оставя хората в екипа да решават задачите от начало до край самостоятелно. Според спецификата на проекта - отнема няколко месеца до година и конкретните технологии, които се ползват, няма признаци да участват в получаването на помията.
Е добре де - ще ползвам MySQL и каквато и да е Java и ще назнача хора, които ги владеят, още по-добре ако с тях са започнали и направо отлично ако само тях знаят. В краен случай става и с PHP.

2. Конкретните технологии са без значение - ред и дисциплина, архитекта да е в час и силна мотивация. Не че съм го виждал някога подобно нещо в действие, или дори в плах опит за намек че има шанс да бъде възможно да се получи поне 3 от 4 от горните на едно място, но напоследък съм убеден, че именно това са правилните съставки.
А иначе - Python и Postgres, nginx и никакви framework-и, освен ако ножът не е опрял в кокала. Ако питаш за десктоп - там не знам, не съм работил такова от 4-5 години.


кротък крилат крококит кърка текила, тармъчка тъжно тревата

Редактирано от lrean на

Отговор
в отговор на Гypy #16

Re: Баш майстора Project Manager

Бил съм да, общо взето това е схемата :-))) Първите 2 пъти ме играеха така с джантите педерасите от сервиза в Дианабад. Но и аз се научих да ги играя. Отивам в сервиза на Дунев за пълна проверка кво му има на Ауди-то. Струва 10 лева, няма такава цена!!!!! И после пича почва, това толкова, онова толкова, нещо дето е 100 лева той го дава на 300 и аз му викам ми ок, ще си помисля и отивам във форума на Ауди и после при някой друг майстор и му казвам искам това и това да ми смениш, знам колко струва няма смисъл да ме играеш и те така :-)))))))

Отговор
в отговор на jpenev #17

Re: Баш майстора Project Manager

романтичния период на програмирането беше 80те, в световен мащаб.




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на jpenev #18

За мен си цъкам няколко малки проекта на УебаДжава

И мога да ти кажа, че не ползвам фреймуорзи, а само разни библиотеки от Апаче главно.

Като цяло всичко е обекти.

Имам си един леър дето персиства в базата. Заявките (исърти, ъпдейти) си ги пиша на ръка ползвайки добрите практики да ползвам PreparedStatement.

За база ползвам Postgres. Кривото е, че JDBC драйвера им не поддържа връщане на ауто генерираните ключове. Все се каня да разгледам кода и да хакна там нещо. Ама като съм чел по форумите им, пичовете искат дженерик солюшън дето да работи за всички случаи, а такова трудно се правело. Имало няколко хака дето покриват 90% от случаите.

INSERT INTO table (field_a, field_b) VALUES (?, ?) RETURNING id
ResultSet rs = st.executeQuery();
И после от резулт сета си вадя ИД-то.

Не знам колко е стандартно това решение. Но това е положението getGeneratedKeys() не е имплементирано още в опън сорса JDBC драйвера.


Понякога поради спецификата на нещата персиствам и в текстови файлове. Не за друго, ами лукъпа и зареждането е с пъти по-бързо. А и не ми трябва търсене там.

Имам един леър, дето кешира и синхронизира нещата и капсулира някаква логика в случай на нужда. Той се намира над персистант леъра. Т.е. персистант леъра не се вика директно, а през този леър.

Всичкото това нещо може да работи без сървлет контейнер и може да се тества с Unit тестове, включая ръчкане по базата и каквото се сетиш още.

Сървлетите са супер тънки и единственото нещо, което правят е да приемат параметрите, да ги сетват и да викат съответните методи, обикновено на оня леър над персистанта.

За презентация ползвам JSP + JSTL.

Част от идеите донякъде бяха повлияни от едно мое питане във клубчето и доста хора се включиха и общо взето мненията бяха преобладаващо в тази насока.

Но това е за малки проекти от 5-10 таблици, 10-20 обекта, 5-6 уеб форми и 10-20 вида странички.

Ползвам малко библиотеки:

commons-io - ако трябва да персиствам във файлове
gson - за Ajax заявки
log4j - за логване
whirlycache - за кеширане на обекти
за кеширане на разни малки списъци - номенклатури, код листове ползвам хаш таблици.
freemarker - за генериране на е-майли към потребители и пр.


Ползвам Томкат и като цяло всичко това успява да се вмести на един VPS с 512 РАМ. И даже работи перфектно. Никви проблеми откак го ръчкам последната една година вече.

Кодът се разширява супер лесно, нови фичъри също се правят лесно. Някакви справки като се налага да кодирам ми отнема около ден (вади се нещо от базата, смята се и се показва на потребители). И даже работят бързо и няма нужда от оптимизации на този етап.

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

Но това е за сравнително малък проект. Ако станат 100 таблици, 50 уеб форми, 200 справки не знам как ще се поддържа. Но предполагам ще е по-добре от другите бози.

Отговор
в отговор на zaphod #19

Re: Баш майстора Project Manager

Може в световен мащаб и така да е, но в БГ се запознахме с Интернет-а 96-та и тогава още нямаше никакви проекти и наливахме основите. Аз бачках в Нетинфо тогава и имаше 20-30 проекта като всеки си взимаше по 2-3 и ги правеше целите, без да се бутат по няколко човека да се карат непрекъснато кой как мисли да направи еди кое си. Картички, банер ротации, административни модули, пощата и много други неща. Аз имам само добри спомени от това време.

Отговор
в отговор на BullDog #20

Re: Баш майстора Project Manager

О да Spring e супер, явно е много скучно да си създаваш обектите с код, та за тва айде да не знаем вече кое къде се създава и да не можем да пишем с 'обикновен' редактор.

Отговор