LINUX.ORG.RU
ФорумTalks

[программирование]Я люблю людей - люблю, когда их нет,

 


0

0

Я свирепею, когда сотрудники пишут индусокод, когда они ложат болт на стиль программирования, когда пишут велосипеды. Как изменить людей?

Можно компанейски забить - тогда проект станет говном, можно на каждый замеченный в svn 'след индуса' подходить к автору и проводить душеспасительные беседы - тогда я стану занудой. Все не то.

Как быть? У меня есть множество путей поведения в таком случае, но хочется услышать что делают другие, в таких случаях. Да, быдлокодеров живущих по законам: написсал, получил бабло и свалил, могут не беспокоится.

ps. Все опечатки являются случайными и любые фрейдистские ассоциации могут быть поводом для обращения к специалисту.

★★☆
Ответ на: комментарий от RogerThat

>Это как раз адекватное отношения, учитывая зарплату программистов, тем более в россии.

Нищеброд детектед

elf
()
Ответ на: комментарий от wfrr

>Яж не порнуху снимаю

Если ты считаешь, что эти люди — специалисты по съемке порнухи, тогда снимай порнуху.

abraziv_whiskey ★★★★★
()

Не надо никого менять, делай своих.

record ★★★★★
()

Я тоже люблю людей

Всех. Я хочу, чтобы они умерли быстро и безболезненно.

igels
()

Некоторое время назад написал «общекодерский уставЪ». Ввел и теперь караю за неисполнение.

От велосипедов и индусокода полностью не спасает, но код стало возможным читать без напряжения для глаз

r_asian ★☆☆
()
Ответ на: комментарий от sign

Вот таких как ты, ищущих закономерности там где их нет тоже надо гнать сцаными тряпками.

wfrr ★★☆
() автор топика
Ответ на: комментарий от Ramen

ложат

http://ege.yandex.ru/rus/

Умник нашелся. Кладут что-нибудь маленькое и материальное (причем аккуратно). А вот болт именно ложат. Еще у нас в стране ложат кафель, асфальт, перекрытия в домах и т.п. Хотя, один раз я видел, как кафель кладут, но сам все равно ложу - я, все-таки, не профессионал и имею совсем другую специальность :)

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от wfrr
var foo = object.getSomeOne().getFoo() 
foo.put("1",1); 

И это по твоему не copypaste? Должно было быть:

put = object.getSomeOne().getFoo().put
put(...)
...

DonkeyHot ★★★★★
()

Ввести парное программирование и элементы XP? Или хотя бы перекрестный рефакторинг кода - поручать одному сотруднику исправлять индусокод другого (только задачу формулировать доходчиво).

oami ★★
()

Я свирепею, когда сотрудники пишут индусокод, когда они ложат болт на стиль программирования, когда пишут велосипеды. Как изменить людей?

нет человека - нет проблемы, расстрелы спасут отца русской демократии :)

а если без шуток - положительная мотивация, установи доп. премию для тех кто не балуется быдлокодом, как вариант - раздели существующую премию на 2 части - для тех кто успел сделать работу и для тех кто не «индусы», правильные люди будут получать обе части, остальные горевать и быть не согласными :)

да, для злостных «индусов» - бан на работе и торжественные проводы

shty ★★★★★
()
Ответ на: комментарий от sin_a

Чем отличается культура в программировании от культуры в обычной жизни?

некоей умозрительностью

shty ★★★★★
()

Тред не читал. Согласен с тобой полностью. У меня возникает желание не просто «поговорить», в натыкать его мордой в экран и заставить учить правила оформления кода.

Zhbert ★★★★★
()
Ответ на: комментарий от wfrr

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

простите, а тогда в чём Ваш баттхёрт, докладная начальству и пусть оно с ними разбирается

shty ★★★★★
()
Ответ на: комментарий от Zhbert

. У меня возникает желание не просто «поговорить», в натыкать его мордой в экран и заставить учить правила оформления кода.

use *lint (Like pylint or cpplint), Luke :) и не принимать код пока не будет без ошибок :)

shty ★★★★★
()
Ответ на: комментарий от oami

перекрестный рефакторинг кода - поручать одному сотруднику исправлять индусокод другого

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

shty ★★★★★
()

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

NuclearPhoenix
()

Меня тоже это дико бесит. К сожалению, пока не нашел как это побороть.

urxvt ★★★★★
()

> Можно компанейски забить - тогда проект станет говном, можно на каждый замеченный в svn 'след индуса' подходить к автору и проводить душеспасительные беседы - тогда я стану занудой. Все не то.

я говорю «твой код - фуфло и надо бы передумать его». и в глаза смотрю многозначительно.

SevikL ★★★★★
()
Ответ на: комментарий от shty

> ога, посадить одного индуса исправлять код другого индуса :)

Я ведь не случайно написал про доходчивую постановку задачи. Если одному объяснить, что именно он должен исправить у другого перед коммитом, то он и о своем коде задумается.

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

Хотя... Вполне возможно сформулировать Теорему об индусокоде, указав необходимые и достаточные условия получения идеального кода.

oami ★★
()
Ответ на: комментарий от oami

> ога, посадить одного индуса исправлять код другого индуса :)

Я ведь не случайно написал про доходчивую постановку задачи. Если одному объяснить, что именно он должен исправить у другого перед коммитом, то он и о своем коде задумается.

бггг, задумается и напишет

lock(my_mutex);

if(...) {
    if(...) {
        if(...) {
           if(...) {
              if(...) {
                 if(!read_data(&data)) {
                       throw invalid_data_exctprion()
                  else {     
              else {
        .....
unlock(my_mutex)

индусокодеры не лечатся :)

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

просьба не путать студентов и индусов :)

shty ★★★★★
()
Ответ на: комментарий от wfrr

var foo = object.getSomeOne().getFoo() foo.put(«1»,1); foo.put(«3»,2); foo.put(«5»,3); foo.put(«8»,4);

Это попытка костылём исправить непродуманный интерфейс. Разумнее было бы иметь интерфейс для добавления массивов данных, или же, такого типа:

 object.getSomeOne().getFoo().put("1",1).put("3",2).put("5",3).put("8",4).put("13",5); 
Непродуманные интерфейсы провоцируют говнокод.

Casus ★★★★★
()
Ответ на: комментарий от shimon

> fixed же

Я разве не сказал и про это тоже?

Разумнее было бы иметь интерфейс для добавления массивов

Casus ★★★★★
()
Ответ на: комментарий от wfrr

Говнокод:

var foo = object.getSomeOne().getFoo() 
foo.put("1",1); 
foo.put("3",2); 
foo.put("5",3); 
foo.put("8",4); 

Правильно (си++):

char const * const id[] = {
  "1",
  "3",
  "5",
  "8",
};
auto foo = object.getSomeOne().getFoo(); //ну или делегата сбацать, как советовали
for (size_t i=0;i<LEN(id);++i)
  foo.put(id[i],i+1); 
А дополнительный интерфейс для добавления массивов - бред. Потому что ещё понадобится интерфейс для списков, хешей, пар (туплов), деревьев и т.п.

legolegs ★★★★★
()
Ответ на: комментарий от Eddy_Em

>А вот болт именно ложат. Еще у нас в стране ложат кафель, асфальт, перекрытия в домах и т.п.
Что-то «ложат» только безграмотные идиоты. Которых у нас в стране, к сожалению, много, да.

Ramen ★★★★
()
Ответ на: комментарий от Ramen

Ложить - нормальное русское слово. Означает пренебрежительное отношение к кому-то или чему-то. Однозначно характеризует работу большинства русских.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

>Ложить - нормальное русское слово.
Такого слова в русском языке попросту нет.

Означает пренебрежительное отношение к кому-то или чему-то. Однозначно характеризует работу большинства русских.

Ну на языке безграмотных идиотов быть может оно это и означает. :-)

Ramen ★★★★
()
Ответ на: комментарий от Ramen

И да, в русском языке глаголы с корнем -лож- употребляются только с приставкой (исключение - ложиться).

Ramen ★★★★
()
Ответ на: комментарий от Karapuz

> Выпиши себе специалистов из ФРГ или набери на работу тех кто туда хотел надысь уехать, если они верят в свои силы значит квалифицированы настолько чтобы не писать индусокод

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

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

gods-little-toy ★★★
()
Ответ на: комментарий от shty

> ога, посадить одного индуса исправлять код другого индуса :) может сразу ядерную бомбу сбросить? всё же не так страшно будет :)

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

gods-little-toy ★★★
()
Ответ на: комментарий от legolegs

> Правильно (си++):

Не правильно, но возможно. Где-то потерялся #define LEN(a), кстати, что уже «некрасиво» ;)

А дополнительный интерфейс для добавления массивов - бред. Потому что ещё понадобится интерфейс для списков, хешей, пар (туплов), деревьев и т.п.

Зависит от предполагаемого использования. Если надо добавлять не только массивы, но и «списки, хеши, пары (туплов), деревья», то стоит подумать про generic.

Casus ★★★★★
()
Ответ на: комментарий от aptyp

А вы никогда не сталкивались с тем. что сколько не поднимай зп, а народа толкового так и не приходит? У нас в стране жуткий дифицит кадров, и уже не первый год.

ixrws ★★★
()
Ответ на: комментарий от gods-little-toy

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

не-не-не... дешевле чем тонны кода лопатить сразу нанять нормальных :)

оне ж так понапишут что потом не разгребёшь

но, если так сложились звёзды, то уже ничего не поделаешь - в песочницу

shty ★★★★★
()
Ответ на: комментарий от ixrws

> А вы никогда не сталкивались с тем. что сколько не поднимай зп, а народа толкового так и не приходит?

нанимайте из других, не? Удаленки сейчас цветут и процветают.

Если вы думаете что вы достигли супер-потолка в ЗП, задайте себе вопрос - появились ли у вас люди работавшие в яндексе/гугле/etc/etc.. если нет - значит вы просто недостаточно подняли зп.

У нас в стране жуткий дифицит кадров, и уже не первый год.

Дефициты были при социализме. сейчас у нас рынок труда.

когда оформите десяток рабочих виз для программеров не-граждан, или откроете development center за бугром, тогда мы вас послушаем про «дефицит кадров в стране».

gods-little-toy ★★★
()
Ответ на: комментарий от shty

> не-не-не... дешевле чем тонны кода лопатить сразу нанять нормальных :)

оне ж так понапишут что потом не разгребёшь

но, если так сложились звёзды, то уже ничего не поделаешь - в песочницу

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

gods-little-toy ★★★
()
Ответ на: комментарий от Casus

>Где-то потерялся #define LEN(a)

Это столь простой и безвредный макрос, что я уже давно считаю его таким же стандартным, как и #include <iostream> и не удлинняю им мессаги на форумах.

Зависит от предполагаемого использования. Если надо добавлять не только массивы, но и «списки, хеши, пары (туплов), деревья», то стоит подумать про generic.

в принципе да. Но чем

std::foreach(some_collection.begin(),some_collection.end(), [](Elem elem){foo.put(elem)})

от

FOR_EACH(some_collection, elem) //или как там в бустовском форъич {foo.put(elem);}

? В плюсах второе короче, в других языках разницы вообще не будет.

legolegs ★★★★★
()
Ответ на: комментарий от gods-little-toy

>Удаленки сейчас цветут и процветают.

Вы забыли слово «пахнут».

появились ли у вас люди работавшие в яндексе/гугле/etc/etc

А вот кстати мне любопытно, какие компании можно дописать в этот список? In b4 «гугль яндексу не товарищ».

Дефициты были при социализме. сейчас у нас рынок труда.

Ага, рынок и дефицит - понятия не совместимые, как-же как-же. Найдите мне в Липецке молоко в двухлитровых пакетах или хорошие компы с предустановленным линуксом, а потом говорите про «дефицита нет».

legolegs ★★★★★
()
Ответ на: комментарий от ixrws

Пока не сталкивался,жизненный опыт не богат, так как пока студент. Но согласен с тем, что от зп iq не зависит. Про дефицит,как сказал уже,мне ничего не известно, но позволю сообщить - среди 200 студентов математического факультета специальности прикладная математика от силы человек 10 пишущих для людей, итерирующих, комментирующих код, по человечески называющих переменные и придерживающихся какого нибудь стиля отступов. Среди более молодых процент умеющих что то ещё меньше, так что дефицит будет только увеличиваться.

aptyp ★★★★
()
Ответ на: комментарий от Ramen

>Слова «ложить» в русском языке нет. Есть слово «класть».

Да не гони. Слово «ложить» есть, все его понимают и используют.

elf
()
Ответ на: комментарий от Rastafarra

Тут и к этому выдуманному примеру туча быдлокодеров оптимизации клепает, убогие 8)

wfrr ★★☆
() автор топика
Ответ на: комментарий от Casus

Непродуманные интерфейсы провоцируют говнокод.

Уважаемый, мне то вы зачем очевидные вещи говорите? Вот вам адресочек: http://bugs.sun.com/ сообщите им что у них голимый интерфейс java.util.Map провоцирует говнокод, заодно сообщите им что реализация генериков у них говно 8)

wfrr ★★☆
() автор топика
Ответ на: комментарий от shimon

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

wfrr ★★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.