Это для школьников, нужно всегда оставлять метки для себя, я примерно через две недели уже не помню о чем речь шла если чемто другим уже занимаюсь.
З.Ы. Как я ненавижу жабу, и где мои любимые указатели, и почему я должен этим ректальным образом передавать в параметры функций мои другие функции, а прошел только месяц как я написал на жабе первую программу.
А представь, ты его сам годков через пять читать будешь по надобности..
Вот тогди и вспомнишь своё буратинистое изречение.. ;-) Относись к людям так, как хочешь чтобы они относились к тебе..
по моему надо просто писать нормальный код и разбивать на модули. я програму написал где-то год назад. 7000 строк, ни одного комента. все нормательно, вчера смотрел. все работает все понятно. хотя надо конечно коментить но если все правельно разбить...
на жабе я написал пол года назад прогу (15000 строк). до сих пор полет нормальный. просто разбил на 23 класса и назвал все нормально. хотите покажу код.
Если в некоторых случаях ещё можно игнорировать комменты, то некоторые всё-таки требуют комментариев, особенно при низкоуровневом програмиировании, особенно: если часто переключаешься между задачами..
То, о чём ты говоришь - это быдлокод. Писаный ничтожными дешевками для дешевок.
А если код реализует сложную математику или сложный сетевой протокол или еще что либо нетривиальное то все твои дебильные названия
идиотских классов не помогут. Потребуются комментарии с формулами, выводами, доказательством, графиками и диаграммами состояний.
Ну да, когдато админом оракла работал, сейчас не вспомню как системные таблицы называются, а в постгрес хоть щас. Просто под рукою, даже на ноуте:) Сложно всё упомнить, я даже имена забываю, иногда в памяти телефоны всплывают, а чьи не помню.
Можешь все 15000 строк выбросить на помойку, их ценность равна нулю. К коду, который хотя бы чего-то стоит нужны целые тома комментариев. В стоящем коде зарыта сложная логика, а в твоём коде - говно и тупизм.
две проги. одна: медиа плэер типа mpd. сам он на самом деле фронт енд к mpg321, но не суть важно. попытка была не очень удачной так как дизайн сетевого контроля хромал отсутствием нужных возможностей (типа запроса списка песен). весь контроль осуществлялся через передачу команд от клиента к серверу ввиде констант (byte). назад ничего не посылалось. если все работало на localhost то все нормально так как файл с плейлистом хранился на диске. через реальную сеть не работало (ну работало но не удобно было). короче готовлюсь переписывать сетевой протокол. написано на С.
вотрая прога: используется в продакшоне у меня в универе. система опросов типа голосование на лету. все на джаве (была идея запихнуть клиентов в КПК и мобилы).
Выпей йаду.
Мало того что неподдержабельный код пишешь, так еще и агитируешь.
Как я блин с такими кретинами намучился.. 8(( не приходилось что ли поддерживать программы по 5 лет? А если состав разработчиков уже трижды сменился? 8(((
Только природная блять вежливость мешает мне рассказать более красочно, что я думаю 8((((
Извини но если ты вправду умышленно не комментишь свой код, то он на* никому кроме тебя не нужен. Ты, голубчик, просто недорос еще до больших и сложных программ, никогда не работал в команде, никогда не писал нетривиальных вещей. Твои гуйня к mpg123 и система опроса, разумеется к большим и сложным не относятся. И ещё: количество строк кода слабо коррелирует со сложностью восприятия. Есть программы на 1 тыс. строк, в которых ты и за год вряд ли разберёшься, даже если будешь ботать исходники каждый день, и продолжать ботать их во снах ночами. И не потому, что они криво написаны и не используют ООП - они просто сложны, так же как и предметная область, которую они реализуют. А можно написать простыню на 20 тыс. типа moveto 30,40; color red; lineto W-50,H-60. Так что с твоим подходом только быдлокодерствовать в мелкой конторке.
Возникает такое ощущение, что многие просто не доросли до понимания opensource. Понимания того факта, что в нем "варятся" не только бородатые профи, но и вполне нормальные пиплы, частенько к программированию отогящихся также, как балерина к химии. Ну не понимает антибыдло то, что есть псевдопрограммеры, пишущие или потому, что первые так ничего и не написали, или потому, что написали, но не то. Или просто написали для себя. И что? Или вы знаете все особенности вертикального электронного перехода по Франку - Ко'ндому, когда говорите про цвет какого-либо физическогог объекта(и именно этот переход связан с цветом)? А когда пытаетесь кричать или свистеть "третьему лицу", вы часто учитываете эффективность подавания звуковых сигналов, включая анализ прохождения звуковой волны с учётом эффекта Доплера? Нет? Ну так сидите и не рыпайтесь. Ваш костыль под этот мир под названием "язык программирования" не нужен сам по себе - он нужен лишь для решения _более насущных_ задач. чем разработка правильного алгоритма. И нечего заставлять с помощью него заниматься сексом в гамаке стоя во всех позах, если он нужен-то всего лишь для того, чтобы перейти через несколько кривых тропинок этого мира.
Вот именно что костыль. Он сам по себе говна не стоит и должен быть комплиментарным к языку естественному, человеческому. Дополнять его там, где без него совсем никак, и не мешать там где и без него обойтись можно. В этом и заключается смысл literate programming. Этой идее так истерично противостоят кулькакеришки-красноглазики вроде Krechet-а.
Исходники должны комментироваться, даже если они самокомментируемые. Это нужно делать, если не для себя, то для коллеги программиста, если такового нет, то хотя бы для человека, решившего этот исходник изменить. Свой скрипт для выдвигания лотка с CD, состоящий из 2-х строк, комментировать не надо, просто потому что его ценность близка к 0, им мало кто заинтересуется и запутаться в нем сложно. Автор же выложил свой код на SF, значит рассчитывает на интерес к своим творениям со стороны комьюнити. Поверьте, есть гораздо более интересные вещи, чем разгадывание мыслей и трюков написавшего исходник автора. Если не уважаешь труд других программистов, выбери другую специальность. Исходники должны комментироваться и (!) документироваться. Точка.
Вдогонку. Видел я таких программистов. Понаписал тысячи закорючек, спрашиваешь, как это всё устроено? Называет смысл пары переменных, алгоритм в общих чертах, и добавляет самодовольно: "Да, а остальное и так в принципе понятно". Потом пару дней ломаешь голову над этим недокодом, плюешься, чертыхаешься на создателя программы, и в конце концов, вместо того, чтобы думать над новыми функциями и улучшениями, переписываешь всё с нуля и на другом языке. Нахрен нужны такие исходники и "программисты"?
Возможно, есть большая доля истины в твоих высказываниях, "но ногами то зачем"? Это к тому, что если есть код, который ты не можешь понять из-за самого кода, или из-за "особенности" автора, что зачем автора грязью поливать-то? Написал и написал, не нравится - не использую. Может ,автор решил для таких же, как он код выложить? Еще раз: принцип opensource - использую то, что нравится, остальное по желанию. Права одного заканчиваются там, где начинаются права другого. А насчет профессии - а если я химик по образованию, но необходимо вынужденно писать программы? И это при том, что опыта нет? Убицца ап стену посоветуешь? Или юзать проприетарное? Ведь делать "поделки" - это вроде смерти подобно.
Если этот автор работает с тобой - то как раз ногами то и надо. Чтоб из-за этой свиньи весь отдел не простаивал многие часы, и не терял потенциальную прибыль.
Если этот автор твой подчинённый - то не надо ногами, это неэтично. Его надо просто сразу же без лишнего базара уволить.
Если этот аффтар - просто левый хмырь, выложивший свои поделия в Сети - то его надо по доброму поддеть, чтоб потом, когда он доучится, подрастёт и пойдёт работать, его бы не отхреначили вечером в подворотне ногами обиженные коллеги или не уволил бы недовольный начальник. Сейчас мы кречета вздрючим, а лет через 5 он вспомнит это и спасибо нам всем скажет.
>на жабе я написал пол года назад прогу (15000 строк). до сих пор полет нормальный. просто разбил на 23 класса и назвал все нормально. хотите покажу код.
>Если этот аффтар - просто левый хмырь, выложивший свои поделия в Сети - то его надо по доброму поддеть, чтоб потом, когда он доучится, подрастёт и пойдёт работать, его бы не отхреначили вечером в подворотне ногами обиженные коллеги или не уволил бы недовольный начальник. Сейчас мы кречета вздрючим, а лет через 5 он вспомнит это и спасибо нам всем скажет.
Вот это и раздражает. Я написал программу ДЛЯ СЕБЯ, выложил ее по своей доброй воле на сорсфордж, а меня за это что? отхреначат в подворотне? А начальник-то причем? Он такой же химик как и я, его вообще не должно ипать, что я там написал для себя и куда выложил.
То есть абсолютная нетерпимость к результатам. Не делай, как грицца, добра, не получишь зла. Если это только в России, то понятно, почему у нас OpenSource обречен, и почему так мало афтаров открытого софта. Я уже слышал мнение анонимусов в теме про Downloader for X. Нетерпимость в чистом виде.
"PollServer extends javax.swing.JFrame" - дальше можно и не смотреть.
Когда кандидат такое делает в тестовом задании, в short list он не попадает
гарантированно, какое бы впечатляющее CV у него не было.
Когда научишься отделять логику от GUI, можешь возвращаться. А пока ты не имеешь права высказывать своё мнение о том, как надо программировать.
Далее - на хера poll делаешь? (см. TalkThread.waitForQuestion())
За такое обычно яйца отрывают.
Про активный и злостный изобретнёж велосипедов, и без того имеющихся в стандартной жабской библиотеке я и не говорю, это такая типичная ошибка пионеров, что её обычно даже прощают (тем, кто программирует не более полугода).
Если написал для себя - то тебя хреначить не будут. Тебе просто выскажут всё, что думают, и ты обязан кланяться и говорить "спасибо" за то что уделили время на критику. Ну и естественно конструктивную критику ты обязан учесть, иначе ты просто дурак.
А вот если ты написал код не для себя, а для коллег, или для клиента - то тебя надо бить ногами. Сильно. Так, чтоб гарантированно запомнил, что так поступать нельзя.
Пойми, дурак, никакой "терпимости" тут быть не может в принципе. Ты выкладываешь исходники для того чтобы получить на них feedback. Получая - радуйся. Не согласен - изволь хотя бы для себя обосновать такую точку зрения. Только посторайся помнить о том, что Open Source - лучший способ научиться, в том числе и научиться работе в команде. Любые комментарии которые ты получишь потом тебе в жизни очень пригодятся.
Тогда пойду со всоей стороны. Представь, что ты- программист до мозга костей, вдруг захотел покрасить себе штанишки. Но не тем, что продают, а нечто своим. Синтезировал с помощью учебника для вуза очень хороший, и главное дешевый в домашнем производстве, краситель. Но вот беда - химик из тебя никакой, ты никак не описал условия изготовления. И хотя ты все делал по учебнику, условия у тебя получились совсем отличные от теоретических, от тех, на которые ты расчитывал. А также ты, как ламер в химии, не записывал ни свои действия, ни происходящие явления. Ты штанишки свои покрасил, а потом решил поделиться со своими друзьями и коллегами не только своим красителем, но и формулой. Только у друзей твоих получилось все хуже. А теперь смотри, к чему, согласно твоим словам, приведет как твоя инициатива, так и твоя щедрость:
1. Каждый "друг" и коллега придет к тебе и наплюет в душу, что ты - хреновый химик. руки у тебя из задницы и вообще - нефига заниматься тем, в чем ты не смыслишь.
2. Каждый будет критиковать тебя, а ты, если ты не дурак, должен будешь слушать все это, кланятся, и, главное, наматывать на ус.
3. Конструктивную критику ды должен учесть, хотя ты и понимаешь ,что она тебе, как программисту, нахер не нужна, ибо химией ьы вряд ли будешь заниматься каждый день.
4. Если ты захочешь, не дай бог, показать кому-нибудь из "коммерческих кругов" всое "изобретение", то тебя прежде всегопобьют в подворотне а может и вы$%ут.
А ведь ты всего лишь хотел покрасить штанишки и поделиться своим "успехом"...
1. Жалкая душонка, в которую можно "наплевать" справедливой критикой, не достойна существования. Просто по определению. Это фундаментальная этическая позиция, она не обсуждается. Гадёнышь, неадекватно воспринимающий критику - наихудшая из возможных в этом мире мразей. Точка.
2. Именно так. Потому как откуда ж тебе, ламеру, узнать ещё, как надо правильно делать, если не из критики? Умный человек на ушибках учится. Очень умный - учится на чужих ошибках, так что вокруг пинаемого и поругаемого тебя будет бегать толпа более умных, только чтоб послушать критику и намотать себе на ус.
3. А фигли взялся штанишки красить тогда? Взялся делать дело - делай его хорошо. Это касается чего угодно, от приготовления обеда и программирования и до покраски штанишек.
4. Ты не понял ни хера. Тебя отхреначат по почкам, если ты такой код напишешь, выполняя свои непосредственные производственные обязанности. Если ты - программист, и писать код - твоя работа. Того, кто делает свою работу плохо, надо бить. А лучше - убивать. То, что ты умудрилось не понять такую простую вещь, многое говорит о твоём IQ. Мне страшно за химию, какая гадость нынче ей стала заниматься... :(
>>"PollServer extends javax.swing.JFrame" - дальше можно и не смотреть. Когда кандидат такое делает в тестовом задании, в short list он не попадает гарантированно, какое бы впечатляющее CV у него не было.
>>Когда научишься отделять логику от GUI, можешь возвращаться. А пока ты не имеешь права высказывать своё мнение о том, как надо программировать.
ты дальше почитай. Посмотри что сетевучесть всего происходит в PollServerThread и TalkThread где в свою очередь все абстрацировано в Network. да в PollServer 90% только гуй (кроме мелких вещей типа оповещения TalkThread'ов о новом вопросе).
>>Далее - на хера poll делаешь? (см. TalkThread.waitForQuestion())
вот функция под вопросом. poll как ты сказал тут только по тому что сетевой протокол работает асинхронно. если кто не разберется в этом коде то тогда буду коментировать. :)
и вообще народ тут разошолся не на шутку. я им фразу с bash.org написал а они во. ну ничего могли бы и шашкой рубануть.
кстати anonymous (*) (25.05.2006 17:41:21) как ты смотрел сорскод если на sourceforge количество закачек не прибавилось? просто интересно.
Я посмотрел внимательно. В PollServer СЛИШКОМ много логики зашито. Как я уже сказал - у меня это гарантированный отлуп. Думаю, что у подавляющего большинства других интервьюеров - аналогично. Так что соблаговоли принять к сведению, если хочешь когда либо найти хорошую работу.
И асинхронность протокола тебя не оправдывает. Совсем. Никак. Для асинхронных протоколов принято использовать модель очереди запросов (и если б ты меньше понтовался и больше умных дяденек слушал - знал бы об этом). В твоём конкретном случае архитектура должна быть такой: один тред ждёт входящие соединения и пакеты от уже прицепленных сокетов, разбирает содержимое запроса по минимуму и кладёт в очередь сообщений (стандартный шаблон - consumer queue, один мутекс и один семафор, как это на жабью модель ложится - сам разберёшься). На другом конце очереди сообщений живёт пул тредов-исполнителей (на каждый - по паре мутекс-семафор), которые по очереди отдаются на отработку сообщения из головы очереди. Ни в какой момент времени никто не ожидает - все исполнители, сама очередь и висящий на сокетах тред просыпаются моментально как только им есть что делать.
Для понимания такой модели, кстати, полезно изучить язык Erlang, для него она совсем родная. На жабке, правда, тоже без проблем всё делается, но там сложно идеологию прочувствовать.
А про закачки - RTFM. На SF статистика обновляется где-то раз в 48 часов.
>Гадёнышь, неадекватно воспринимающий критику - наихудшая из возможных в этом мире мразей. Точка.
Неправда. Наихудшая из существующих в этом мире мразей - та, которая не обладает тепримостью к другим мнениям.
>Потому как откуда ж тебе, ламеру, узнать ещё, как надо правильно делать, если не из критики?
Ага, я уже представляю тебя как человека - универсальный робот, способный делать что-то либо хорошо, либо ничего. Машина работает, человек - думает. Если кто-то пытается сделать из сбя универсальную безошибочную машину- остается его только пожалеть.
>А фигли взялся штанишки красить тогда? Взялся делать дело - делай его хорошо
А захотелось. Имею на это законное право. Законное право имею делать это плохо. А вот законного права оскорблять чьи-то взгляды не имею. Критиковать - да. Сильно критиковать - да, оскорблять (бить, убивать) - нет.
>Тебя отхреначат по почкам, если ты такой код напишешь, выполняя свои непосредственные производственные обязанности.
Это ты не понял ни хера. Тебя могут отхреначить, если ты плохо исполнял свои производственные обязанности, а не за плохой код, который исполняет свои обязанности, возможно даже очень хорошо.
>Если ты - программист, и писать код - твоя работа.
Уже какой раз говорится про того, кто не является программистом, но становится им по необходимости. Становистя программирующим непрограммистом.
>То, что ты умудрилось не понять такую простую вещь, многое говорит о твоём IQ
А мне ничего не говорит, ибо не существует научно доказанной связи между IQ и каким-либо мнением определенного человека..
>Мне страшно за химию, какая гадость нынче ей стала заниматься... :(
А мне страшно за опенсорс - из-за таких снобов он у нас в стране не развивается :(
Если все будут обладать терпимостью к неправильному мнению - правильное мнение не родится никогда. Ты можешь себе представить, например, терпимость в науке? Трепимость к мнению сторонников теории торсионных полей, терпимость к мнению академика Лысенко, терпимость к мнению Е. Гайдара в вопросах монетаристского подхода?
Нет большего зла в этом мире чем терпимость. Настоящие, нормальные люди не проявляют друг к другу ни капли терпимости, с уважением воспринимают любую объективную критику. Только так и можно родить что либо конструктивное - не спуская ни себе, ни другим ни малейшей ошибки.
Как ты, делая что либо плохо, сможешь делать это лучше, если тебя не будут критиковать, а, ничтожество?
И не вякай тут лишнего про непрограммистов - разговор был только про программистов, про тех, кто делает это профессионально. А вот их за некомментированный код надо убивать, потому как это - мина замедленного действия. Сейчас оно якобы "работает", а потом стоимость поддержки выростает до невообразимых высот. А диверсантов убивать надо, с этим даже такое жывотное, как ты, вряд ли станет спорить.
Нельзя перегнуть палку с нетерпимостью. Критика бывает полной - то есть, учитывающей все обнаруженные недостатки, и такая критика наиболее ценна и полезна, и бывает критика ущербная, в которой сами критикующие что-то важное упустили, и результат такой критики будет хуже чем от критики идеальной.
P.S. при приёме на работу обычно очень внимательно смотрят на качество open source кода, писанного кандидатом. Гораздо придирчивее чем тестовое задание. Ведь это код, который специально написан так чтобы другим показать было не стыдно, это должен быть образец лучших твоих способностей. Так что - учти это. Будь очень осторожен, публикуя open source!
>И не вякай тут лишнего про непрограммистов - разговор был только про программистов, про тех, кто делает это профессионально.
Да неужели? А вот это чьи слова?
>Если написал для себя - то тебя хреначить не будут. Тебе просто выскажут всё, что думают, и ты обязан кланяться и говорить "спасибо" за то что уделили время на критику.
И пошли они именно от мнения о программирующих нерпограммистов.
>Ты можешь себе представить, например, терпимость в науке?
Могу, поскольку сейчас, из-за отсутствия терпимости, в науке преобладает хаос консервативности, поскольку из-за отсутствия терпимости новые идем проникают с огромным скрипом. Вместо того, чтобы их рассматривать всем научным сообществом, их заставляют подтвержлдать одному человеку. Ну и думай, как это влияет на эффективность научного познания.
>Только так и можно родить что либо конструктивное - не спуская ни себе, ни другим ни малейшей ошибки.
Ну-ну .вот и я говорю - роботы рулят, долой людей. Судный день неизбежен...
>Как ты, делая что либо плохо, сможешь делать это лучше, если тебя не будут критиковать, а, ничтожество?
Ну давай, просвети меня о том, как слово "ничтожество", содержащееся в этом предложении, относится к понятию "критика"? Это что - неотменный атрибут? Это не критика, это - оскорбление, выдаваемое за критику. А конструктивной критикой здесь восе не пахнет.
>А вот их за некомментированный код надо убивать
Ну так ты сначала внеси это в законопроект, а потом продвигай в жизнь. А пока ты - не более чем псевдопреступник - провокатор, раз жизнь живого организма для тебя менее ценна, чем комментируемый код.
1) Не смей путать open source и то что программист на работе делает
2) Не смей лживо тявкать про "консерватизм". Принятые в науке крайне жесткие традиции peer review работают идеально, ни одной хорошей идеи ни разу не зарубили, ни одной заведомо плохой не пропустили. Если ты готов продолжать этот спор - соблаговоли заготовить конкретные примеры, без которых ты просто автоматически записываешься в газификаторы луж.
3) Дебил ничтожный, ты так и не понял - да, люди ошибаются. И они ошибаются меньше и реже, когда на каждую ошибку получают адекватную критику и учитывают её в дальнейшем.
Вот тут недавно один херург (именно так, через е) "ошибся", вырезал не ту почку пациенту. Визжал потом, что "я человек, я имею право на ошибку, это не непрофессионализм а просто случайность"... Думаю, ты бы с ним общий язык нашел, такая же мразь.
4) Ты ни хера не сделал за что тебя можно было бы критиковать. То, что тут происходит - даже не спор, ты умишком не вышел для спора. Так что ты угодал - я тебя просто оскорбляю. Для профилактики. Чтоб не расслаблялся.
5) Для меня ценна моя зарплата. Если мне её урежут из-за ошибок коллеги, то коллега получит в хлебало. Больно получит. И мне плевать на мнение закона по этому поводу.
2. Пример? Пожалста! Расскажи, например, об физических(а не математических) аспектах, связанных с гиоскопическим эффектом. Проще говоря, без формул объясни физическую суть этого явления. В учебниках такая хорошая идея не встречается "со времен Ивана Грозного"
3. Да, твоя критика - ну просто конструктивна. "Дебил ничтожный" поможет мне в дальнейшем делать меньше ошибок.
>Думаю, ты бы с ним общий язык нашел, такая же мразь.
Конечно, о законах ты и понятия не имеешь, если сравниваешь ошибки хирурга с ошибками программиста-опенсорщика.
4. А где же критика? Столь продвигаемая тобой для избавления от ошибок? Про ценность оскорблений. незаконных, кстати, ты ничего не говорил. Давай-ка, расскажи, какой эффект они дают в дальнейшем? С пояснениями и картинками.
5. Будущее. Отдел великих программистов. Все работают с коллегами. И только один предпочитает работать один.
1. Нет. Не опенсурс ни разу. Opensource - частный случай.
2. Ты дебил или мразь? Или ты - и то, и другое одновременно?
Во первых, каждую скотину, воняющую про "объясни без формул", надо мудохать ногами до тех пор пока кишки с лёгкими не перемешаются в кашу. Потому как нельзя без формул, просто по определению.
Во вторых - где собственно "хорошая идея", которую наука не пропустила? Где мнение, к которому была проявлена нетерпимость? Ты, как обычно, просто вякнуло что-то предельно нерелевантное, что собственно и ожидалось от ущербного ГСМного жывотного.
3. Ещё раз - тебя тут вообще никто не критикует. К счастью, твоего кода никто не видел, и, надеюсь, никто никогда не увидит.
И про херурга ты тут не тявкай. Ты первый начал вонять что человеки имеют право на ошибку. Отдувайся теперь за этот бред.
4. Твоя главная и единственная ошибка - в том, что ты всё ещё существуешь. Надеюсь, моя критика поможет тебе пересмотреть твоё мнение по этому вопросу и поискать стенку покрепче.
5. Научись внятно излагать свои ущербные мыслишки, грязь.