Помощ - Търси - Регистрирани - Календар
Пълна версия: чертите на добрият програмист
UniBG Forums > Дискусии > Dexter's Lab > Програмиране
dlh
Какъв е стилът на един добър програмист, според вас?

Моите 2 цента са, че колкото по-абстрактен е един код, толкова по-reusable е той. Съответно колкото по-абстрактни методи ползва един програмист, толкова по-добър е той.
Narf
Подреден и възможно най-опростен код, хаоса не е хубаво нещо.
EraseD
да подреден но не и опростен
LordDoskias
4etliv i komentiran kod
Narf
QUOTE(EraseD @ Feb 25 2006, 10:48 PM)
да подреден но не и опростен
*


Защо не?
EraseD
тогава няма да е добар програмист
Narf
QUOTE(EraseD @ Feb 25 2006, 11:01 PM)
тогава няма да е добар програмист
*


Имах предвид да се аргументираш.
"Гениалността е в простотата" беше казал някой...
nik666
"Simplicity is the ultimate sophistication"
-Leonardo DiVinci

Или казано по нашенски - Make it simple, stupid !
EraseD
QUOTE(Narf @ Feb 26 2006, 12:13 AM)
Имах предвид да се аргументираш.
"Гениалността е в простотата" беше казал някой...
*



Трабва да е неповторим и да не ползва стари методи и да баде малко Хакер казано по нашенски
LordDoskias
Beauty lies in simplicity
Narf
QUOTE(EraseD @ Feb 25 2006, 11:45 PM)
Трабва да е неповторим и да не ползва стари методи и да баде малко Хакер казано по нашенски
*


А ако старите методи са по-добри?!
Става дума за добър, а не за уникален програмист. Всеки може да се направи на интересен ...
Konqueror
Съчетанието между бързина, сложност и подреденост на един код колкото е по бърз един код толкова по добре
demond
QUOTE(dlh @ Feb 25 2006, 11:42 PM)
Какъв е стилът на един добър програмист, според вас?

Моите 2 цента са, че колкото по-абстрактен е един код, толкова по-reusable е той. Съответно колкото по-абстрактни методи ползва един програмист, толкова по-добър е той.
*


това звучи добре теоретично и в академичните среди, и принципно разбира се е вярно

за съжаление обаче, практиката налага постоянно конкретизиране, специализиране и модифициране на абстрактния, чист и математически оптимален софтуерен дизайн; следователно добър програмист е онзи който проектира софтуера си така, че неизбежните налагащи се промени да могат да се правят възможно най-лесно, бързо, ефикасно и без да развалят (много) основния дизайн - нещо което никак не е лесно, всъщност според мен е най-трудното в тази професия, няма готови рецепти за него и се постига за години опит
Te0d0ra
Да бъде подреден е най важно, що се отнася до опростен, зависи за какво орпостен ако дадена програма е опростена но сигурна тогава съм съгласна, мисля че преди всичко, трябва това което пише даден програмист, да бъде достъпно за всички, в смисъл да се разбере дори от тези , който не разбират от програмиране за съжаление обаче хората който не разбират от програмиране искат да си платята за някаква супер измислена програма която 1-во не става за нищо, 2-ро изобщо няма да могат да работят на нея, 3-то е пълна с никому ненужни глупости и накрая изобщо не са доволни от програмата и колкото и да е добар даден програмист те го искарват супер тъп и че не става за нищо. Така че понякога програмистите са длъни да се съобразяват с това което иска клиента а не с това което на тях им харесва.
yield__
Човек който може да пише model/event-driven код, да е наясно с n-tier архитектурата, но в същото време не е ООП фанатик. Човек за който 'design pattern' не са само 2 думи.

Човек който, като види 3 празни кутийки, знае кои букви да постави в тях.
Guest
QUOTE(yield__ @ Mar 5 2006, 09:20 PM)
Човек който, като види 3 празни кутийки, знае кои букви да постави в тях.
*

хмм, и как ще знае коя комбинация от 30!/(3!*(30-3)!)-те комбинации на 3 от 30 букви да избере wink.gif трябва да има и нещо друго освен кутийките, за да знае кой design pattern да избере хехе
демонд
горното е от мен, забравих да се подпиша
yield__
MVC ? smile.gif
Te0d0ra
Ето някой от чертите на добрият програмист wink.gif)
- Истинският програмист не пише на PASCAL ;
Истинският програмист не се страхува да исползва GOTO, истинският програмист може да пише цикли заемащи цели страници бес да се обърка , Истинският рограмист харесва аритметичния IF, защото той прави програмата по интересна , Истинският програмист пише самомодифициращи програми, особено ако това спестява 20 наносекунди на някой еднократен преход, - Истинският програмист няма нужда от коментари, за него програмите са очевидни .
Добрият програмист може да намери в ръководството и да разбере
току що появилото се съобщение IIK305I. Големият програмист може
да пише на JCL без справочник. Великият Истински Програмист може
да открие грешка, погребана в шест-мегабайтов дъмп без
шестнайсетичен калкулатор, а при липса на хартия за широкия печат
дори и без целия дъмп.
Истинският програмист трябва да подбере и текстов редактор
който да подхожда най-добре на душевната му нагласа, както и на
вратовръзката подарена от тъщата за по-миналия професионален
празник на програмистите. Проблемът е там, че Истинският
програмист не харесва концепцията "Каквото виждате, това
получавате". Той иска редактор от типа "Искаш и получаваш", а
какво получавате е тема на съвсем отделно изследване. Редакторът
трябва да е сложен, тайнствен, мощен, непрощаващ и опасен, с
тънко и своеобразно чувство за хумор. Някоя грешка при работа с
него да унищожи цялата програма или само най-важните и
трудно-настройващи се сегменти. Друга грешка (или същата в
зависимост от фазата на Луната) да запълва с двоични нули
масивите, защитени от изтриване и неправомерен достъп, съдържащи
данните от измерванията и изчисленията на група от четиринадесет
висококвалифицирани и нервни специалисти (двама от които едно
време са се колебали между чистата наука и професионалния бокс).
Хубаво би било редакторът от време на време да вмъква тънка и
загадъчна грешка в подпрограма, която сработва само веднъж.
Къде работи Истинският програмист? Какви програми заслужават
вниманието Му? Можете да бъдете сигурни, че никой Истински прог-
рамист няма да бъде заварен да пише статистически програми на
PASCAL, да сортира адреси за някое списание с помощта на Lotus
или да прави табулограми за малките стари дами, минали на меди-
цинска комисия за презаверка на шофьорските книжки. Истинският
програмист иска задачи с разтърсваща света сложност.
Някои от Най-Страшните Истински Програмисти работят в
космическата лаборатория на NASA в Калифорния. До голяма степен
на тях се дължи отиването на хора на Луната. Компютрите на
космическата совалка са програмирани от Истински програмисти.
Много от тамошните програмисти знаят наизуст целите операционни
системи на Pioneer и Voyager и при нужда оправят нещата от Земята
по радиото без да гледат source-текстовете. С комбинация от дълги
програми на FORTRAN на Земята и къси на ASSEMBLER в Космоса те
могат да извършат невероятни подвизи в навигацията и управлението
- например след шестгодишен полет да улучат десеткилометровия
процеп в пръстените на Сатурн; да сменят някой датчик или
кондензатор 83 секунди преди да се е повредил и други подобни.
Казват, че един Истински програмист решил да напъха програма за
разпознаване на образи в останалите няколкостотин байта от
паметта на Voyager. В последствие тази програма откри нов спътник
на Юпитер.
Истинският програмист може да направи и компромис с принципите
си, работейки върху нещо малко по-тривиално, стига то да носи
достатъчно пари. Например някои Истински програмисти правят
видеоигри, без обаче сами да играят. Истинският програмист знае
как да бие всеки път компютъра или поне да се впише в началото на
таблицата с резултатите, затова не вижда предизвикателство в
играта. Също така всички работещи за Лукас са Истински програмис-
ти, защото би било глупаво да не се приберат парите на петдесет
милиона почитатели на "Междузвездни войни". Малко по малко Истин-
ските програмисти започват да се занимават и с машинна графика,
главно защото никой още не и е намерил разумно приложение и тя за
сега е едно малко странно хоби.
Изобщо Истинският програмист се забавлява така както работи -
т.е. с компютри. Той постоянно се учудва защо неговият работода-
тел му плаща за работа,която иначе би вършил само за удоволствие,
но естествено не изразява гласно такива мисли пред началниците.
От време на време Истинският програмист все пак излиза от служ-
бата си за глътка чист въздух и една-две бири.
В каква среда работи най-добре Истинският програмист? Типичният
Истински програмист живее пред терминала, заобиколен от лис-
тингите на всички програми, които някога е написал. Те са нареде-
ни в строго хронологичен ред,натрупани на места, чието разположе-
ние обаче е така организирано, че само по себе си представлява
изключително интересен проблем в областта на случайните събития.
Ще видите и пет-шест чаши, наполовина пълни с дълго престояло
кафе. Понякога в тях плуват кибритени клечки, угарки от пури и
много други неща. В някои случаи някои чаши съдържат бледа
течност с цвят на чай, силно миришеща на много ром с малко лимо-
нов сок. Не са наблюдавани случаи на недоизпита бира. Освен ако
програмистът не е изключително опитен, ще намерите ръководство за
програмиране на JCL, и справочник по ASSEMBLER отворен на някоя
особено интересна страница. На пода се въргалят опаковки от сухи
бисквити, празни пакети от тютюн за лула и билети за Онзи Концерт
На Който Трябваше Да Отида С Жена Си. Някъде наблизо вероятно има
и забутан шаблон за блок-схеми.
Подложен на силен натиск Истинският програмист може да работи
петдесет часа без прекъсване. Всъщност той предпочита този стил.
Дългото време за отговор на системата не го безпокои, защото му
дава възможност да подремне между две компилации. Ако не го
стягат достатъчно, Истинският програмист работи, първите девет
седмици, по една малка, но изключително интересна част от
проблема. През последната седмица завършва работата си за два-три
петдесет-часови маратона. Това не само впечатлява ръководството,
но и създава удобен претекст да не пише документация.
Ето и някои правила за разпознаване на Истинския програмист:
- Истинският програмист по принцип не носи вратовръзка, но
когато се налага слага вратовръзка, без да изневерява на
принципите си.
- Истинският програмист отива на работа по обяд. Ако отиде
по-рано значи е объркал нещо.
- Истинският програмист може да знае или да не знае рождената
дата на съпругата си, но знае наизуст ASCII - таблицата.
- Истинският програмист не знае да готви. Когато се налага да
сготви, поради липса на алгоритъм, той готви по метода на
пробите и грешките и не обича формален контрол. Понякога
успява.
- Истинският програмист използва водата за миене (в комбина-
ция със сапун или паста за зъби). Ако не трябва да се пие
алкохол, той пие кафе или бира.
- На забава Истинските програмисти стоят в ъгъла и говорят за
защити на операционните системи и начини за преодоляването им
- На футболен мач сравнява играта със своя листинг.
- На плажа чертае блок-схеми по пясъка.
- Отива на дискотека за да открие системата в работата на
светлинните ефекти.
- На погребение Истинският програмист казва: "Бедният Джордж!
Програмата му за сортиране почти тръгна преди инфаркта".

Всъщност и бъдещето не е толкова лошо. Докато има лошо дефи-
нирани задачи, изтънчени грешки , нереални графици и павилиони за
бира, ще има ИСТИНСКИ ПРОГРАМИСТИ, жадуващи да се втурнат и да
решат проблема, оставяйки документацията за после.
DeStRuCti0N
Ne znam , ot kude si go gepila, no e super qko :>
Гост_dem
QUOTE(DeStRuCti0N @ Mar 19 2006, 07:47 PM)
Ne znam , ot kude si go gepila, no e super qko :>
*

super iaki gluposti na kvadrat
magdanoz
за мене програмист е този който като погледне кутията с портокалов сок си го представя като zip филе на портокала (лично мое мнение) ;-))
dlh
QUOTE(magdanoz @ Mar 20 2006, 01:36 PM)
за мене програмист е този който като погледне кутията с портокалов сок си го представя като zip филе на портокала (лично мое мнение) ;-))
*


т'ва е по-скоро полу-професионален чатър, отколкото програмист
Gaijin
Истински добрият дизайн не е този към който нямаш какво да добавиш, а този от който нямаш какво да извадиш...
demоnd
QUOTE(Gaijin @ Mar 27 2006, 03:00 AM)
Истински добрият дизайн не е този към който нямаш какво да добавиш, а този от който нямаш какво да извадиш...
*


naivno i v obshtia sluchaj neviarno tvyrdenie

ot tuka niama kakvo da izvadia, no dizajna e losh:
CODE
char* itoa(int n)
{
    char buf[100], *p=buf+100; *--p = 0;
    do {*--p = '0'+n%10;} while (n/=10);
    return p;
}
Cannibal
Погледнато от тази страна, напълно си прав demоnd..

Все пак "Истински добрият дизайн не е този, към който нямаш какво да добавиш, а този от който нямаш какво да извадиш..." може да се тълкува по доста начини като зависи от гледната точка smile.gif

Всяко нещо ако е направено по предназначение, то то е достатъчно просто и ефикасно. Към него могат да се прибавят екстри, но ако се махне част от ядрото, то няма да е цялостно. (Аз тълкувам този текст така като погледна от моята си кула)
Agree
Кода да е кратък иначе работа не става smile.gif
Narf
QUOTE(Agree @ Jul 13 2006, 06:31 PM)
Кода да е кратък иначе работа не става smile.gif
*


Моля те спри с тези плоски изказвания - 42 поста за един ден и нищо съществено не си казал. Само спамиш форума.
Arruor
QUOTE
в смисъл да се разбере дори от тези , който не разбират от програмиране за съжаление обаче хората който не разбират от програмиране искат да си платята за някаква супер измислена програма която 1-во не става за нищо, 2-ро изобщо няма да могат да работят на нея, 3-то е пълна с никому ненужни глупости и накрая изобщо не са доволни от програмата и колкото и да е добар даден програмист те го искарват супер тъп и че не става за нищо. Така че понякога програмистите са длъни да се съобразяват с това което иска клиента а не с това което на тях им харесва.


Толкова много грешки от човек, който се мисли за програмист ?!? Как да стане ?

Преди доста време беше казано следното : "Ако се напише програма, която може да се ползва дори от идиот, то само идиот би пожелал да я използва".

Всичко написано до тук ( с малки изключения ) е в този контекст. Нищо съществено по темата.

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

Със здраве ...
psycholook
QUOTE(Te0d0ra @ Mar 19 2006, 08:13 PM)
- Истинският програмист не пише на PASCAL ;

Ей тва ако можеш да ми обясниш що?!
drun
Нямало нужда от коментари! Пълни глупости! Дрън, дрън!

Ми като няма нужда от коментари кажете к'во пражи следния израз:
return ((s1 <s2) ? s1 : s2);


Чертите на един добър програмист са да пише ясни, добре коментирани програми с добре подреден код. Кодът трябва да е добре подреден, за да може той да се използва и за напред.
Един добър програмист винаги използва оператора goto внимателно и пестеливо за разлика от начинаештите и неопитни програмисти.
Guest
Govorim za "dobri programisti".
Vseki chovek, narichasht sebe si "programist" moje da ti kaje kakvo pravi code-a, kojto si paste-nal, osobeno kato se ima predvid, che pochti vsyaka kniga za nachinaeshti programisti zapochva s podobni primeri.
Dotuk dokaza, che ne si dobur programist, zashtoto bi documentiral neshto ochevidno i iavno ne si zapoznat s obshtoprieti pravila koga i kude se slaga komentar i kakva rolya igrae komentara za dadena chast ot source-a na eventualno znachitelno po-golyam proekt.

QUOTE(drun @ Aug 22 2006, 01:08 PM)
Нямало нужда от коментари! Пълни глупости! Дрън, дрън!

Ми като няма нужда от коментари кажете к'во пражи следния израз:
return ((s1 <s2) ? s1 : s2);
Чертите на един добър програмист са да пише ясни, добре коментирани програми с добре подреден код. Кодът трябва да е добре подреден, за да може той да се използва и за напред.
Един добър програмист винаги използва оператора goto внимателно и пестеливо за разлика от начинаештите и неопитни програмисти.
*
Guest
Какво е допър програмист ли?
Този, чийто код се разчита безпроблемно от човек, който току-що го е погледнал - да няма нужда да проследи повечето функции, за да разбере какво правят.

Пример за добре написан код /лично мое мнение/ - ratbox-services, ircd-ratbox - тук внасянето на някаква корекция или дори написването на нова функция е изключително приятно...

Лошо написан код - ircservices, ей на това нямам никакво желание да ми се налага да му внасям какви да е промени - труден за разчитане код, неоправдано гоклеми функции /от по няколко стотин реда/ и т.н.
Mitak
горе бях аз.
Arruor
QUOTE
Ми като няма нужда от коментари кажете к'во пражи следния израз:
return ((s1 <s2) ? s1 : s2);


Пич, поне да беше дал по-свестен пример, а не единствения "троен" оператор. Или т.нар кратка форма за if-then-lese.

CODE
$oSex = new bigDick();
$oSex->la->pai->mecha();
lorddoskias
patni bigdick classa smile.gif
Konqueror
Мисля че по тази тема писах но пак ще си дам мнението според мене чертите на един програмист и то добър са :

1. Импровизация в кода
2. Бързина на кода
3. Абстракност
4. Простота на кода до такава степен до колкото позволява дадената програма / да не се използват излишни редове бавещи неговата бързина/
И не на последно място :

5. Добре оформен и подреден сорс код
Newbe
Хай народе rolleyes.gif
Не разбирам от програмиране, но ми стана смешен спора ви.
Програмирането си е изкуство, като музиката например. Има и виртуози и такива, на които си им е трудничко и мажат нещата. Няма смисъл да си ги мерите тук pardon.gif
Polizei
QUOTE
Добрия програмист се познава по лесно четим и portable код.

Много грешно... Все пак някои хора пишем на асемблер, и тогава не виждам колко *portable* може да се получи кода...

Лесно четим? Може би, все пак каквато е тенденцията програмистите ни оценяват на вид, не на качество.
Кодът трябва да е ефикасен и *бърз*, а дали е лесно четим и достъпен до аудиторията, това е друг въпрос.
Все пак кодът е предназначен не за кой да е, а за програмиста който го пише.

А за тая простотийка за ИСТИНСКИЯТ ПРОГРАМИСТ, пуснете си FlexType и с десен клик на иконката в System Tray: Options -> About, тук задържате Alt+Shift и пишете "dead_one"
Това е семпла версия на форума. За да видиш пълната версия, която има повече информация, по-добра подредба и снимки, натисни тук.
Invision Power Board © 2001-2008 Invision Power Services, Inc.