Re[2]: Любой программный продукт портят студенты и индусы
От: carpenter СССР  
Дата: 20.06.11 08:00
Оценка:
Здравствуйте, carpenter, Вы писали:

или таки Анатолий звали
Re[5]: Любой программный продукт портят студенты и индусы
От: ArtemGorikov Австралия жж
Дата: 20.06.11 08:42
Оценка:
Здравствуйте, mik1, Вы писали:

M>Бакалавр где-то в Торонто. Теперь в Сиднее работает. Очень любопытный путь у этого хлопца. Вроде выше среднего уровня казался... Вообще чего-то меня люди в последнее время расстраивают.


[off] потому что Java?
Re[6]: Любой программный продукт портят студенты и индусы
От: mik1  
Дата: 20.06.11 08:44
Оценка:
Здравствуйте, ArtemGorikov, Вы писали:

AG>Здравствуйте, mik1, Вы писали:


M>>Бакалавр где-то в Торонто. Теперь в Сиднее работает. Очень любопытный путь у этого хлопца. Вроде выше среднего уровня казался... Вообще чего-то меня люди в последнее время расстраивают.


AG>[off] потому что Java?


В каком смысле потому что Java? Вопрос про меня или про хлопца?
Re[7]: Любой программный продукт портят студенты и индусы
От: ArtemGorikov Австралия жж
Дата: 20.06.11 08:55
Оценка:
Здравствуйте, mik1, Вы писали:

M>Здравствуйте, ArtemGorikov, Вы писали:


AG>>Здравствуйте, mik1, Вы писали:


M>>>Бакалавр где-то в Торонто. Теперь в Сиднее работает. Очень любопытный путь у этого хлопца. Вроде выше среднего уровня казался... Вообще чего-то меня люди в последнее время расстраивают.


AG>>[off] потому что Java?


M>В каком смысле потому что Java? Вопрос про меня или про хлопца?

Про хлопца и жаву- правда ли что есть корреляция?
Re[8]: Любой программный продукт портят студенты и индусы
От: mik1  
Дата: 20.06.11 08:59
Оценка:
Здравствуйте, ArtemGorikov, Вы писали:

AG>Здравствуйте, mik1, Вы писали:


M>>Здравствуйте, ArtemGorikov, Вы писали:


AG>>>Здравствуйте, mik1, Вы писали:


M>>>>Бакалавр где-то в Торонто. Теперь в Сиднее работает. Очень любопытный путь у этого хлопца. Вроде выше среднего уровня казался... Вообще чего-то меня люди в последнее время расстраивают.


AG>>>[off] потому что Java?


M>>В каком смысле потому что Java? Вопрос про меня или про хлопца?

AG>Про хлопца и жаву- правда ли что есть корреляция?

Нет никакой. Я пока не видел живого индуса, который бы писал нормальный код.
Re[9]: Любой программный продукт портят студенты и индусы
От: ArtemGorikov Австралия жж
Дата: 20.06.11 09:06
Оценка:
Здравствуйте, mik1, Вы писали:

M>Здравствуйте, ArtemGorikov, Вы писали:


AG>>Здравствуйте, mik1, Вы писали:


AG>>>>[off] потому что Java?


M>>>В каком смысле потому что Java? Вопрос про меня или про хлопца?

AG>>Про хлопца и жаву- правда ли что есть корреляция?

M>Нет никакой. Я пока не видел живого индуса, который бы писал нормальный код.

Я не видел чтобы индус при мне писал код Видел индусов с жава-резюмами и в майке SUN, живьем. Сегодня только рассказывал коллеге что такой фольклор у русских программистов про индусов, — он не понял, говорит все лажают.
Re[10]: Любой программный продукт портят студенты и индусы
От: mik1  
Дата: 20.06.11 09:16
Оценка:
Здравствуйте, ArtemGorikov, Вы писали:

M>>>>В каком смысле потому что Java? Вопрос про меня или про хлопца?

AG>>>Про хлопца и жаву- правда ли что есть корреляция?

M>>Нет никакой. Я пока не видел живого индуса, который бы писал нормальный код.

AG>Я не видел чтобы индус при мне писал код Видел индусов с жава-резюмами и в майке SUN, живьем. Сегодня только рассказывал коллеге что такой фольклор у русских программистов про индусов, — он не понял, говорит все лажают.

У нас их в последнее время все болше становится. Так что как они пишут я вижу. Скоро из зоопарка уходить придется.
Re[4]: Любой программный продукт портят студенты и индусы
От: olegkr  
Дата: 20.06.11 14:11
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Интересно, что у них с образованием?

С детства программированию обучают
... << RSDN@Home 1.2.0 alpha 5 rev. 1495>>
Re[3]: Любой программный продукт портят студенты и индусы
От: alzt  
Дата: 20.06.11 18:58
Оценка: 1 (1)
Здравствуйте, mik1, Вы писали:

N>>
N>>//file a.cpp
N>>void foo();
N>>{
N>>   CTLVParser* parser = NULL;
N>>   function( parser );
N>>   delete parser;
N>>}

N>>//file b.cpp (реализация этой function)
N>>void function( CTLVParser* parser )
N>>{
N>>   parser = new CTLVParser();

N>>   ....
N>>}
N>>


N>>Исправлять не стал. Пускай сам в своем г-не копаются.


M>Я, кажется, догадался. Это такая индийская реализация smart pointer-а. Типа при любом нормальном выходе из метода память чистить. Реализация для Сишных (не плюсовых) динозавров.


Только в данном случае будет утечка, т.к. "delete parser" вызовется для нуля.
Re[4]: Любой программный продукт портят студенты и индусы
От: nizle Россия  
Дата: 21.06.11 07:20
Оценка: -2
Здравствуйте, alzt, Вы писали:

A>Здравствуйте, mik1, Вы писали:


N>>>
N>>>//file a.cpp
N>>>void foo();
N>>>{
N>>>   CTLVParser* parser = NULL;
N>>>   function( parser );
N>>>   delete parser;
N>>>}

N>>>//file b.cpp (реализация этой function)
N>>>void function( CTLVParser* parser )
N>>>{
N>>>   parser = new CTLVParser();

N>>>   ....
N>>>}
N>>>


N>>>Исправлять не стал. Пускай сам в своем г-не копаются.


M>>Я, кажется, догадался. Это такая индийская реализация smart pointer-а. Типа при любом нормальном выходе из метода память чистить. Реализация для Сишных (не плюсовых) динозавров.


A>Только в данном случае будет утечка, т.к. "delete parser" вызовется для нуля.


Не будет утечки, этот указатель передается в функцию, там по этому адресу положат не ноль.
Re[5]: Любой программный продукт портят студенты и индусы
От: alzt  
Дата: 22.06.11 08:33
Оценка:
Здравствуйте, nizle, Вы писали:

N>>>>
N>>>>//file a.cpp
N>>>>void foo();
N>>>>{
N>>>>   CTLVParser* parser1 = NULL;
N>>>>   function( parser1 );
N>>>>   delete parser1;
N>>>>}

N>>>>//file b.cpp (реализация этой function)
N>>>>void function( CTLVParser* parser2 )
N>>>>{
N>>>>   parser2 = new CTLVParser();

N>>>>   ....
N>>>>}
N>>>>


A>>Только в данном случае будет утечка, т.к. "delete parser" вызовется для нуля.


N>Не будет утечки, этот указатель передается в функцию, там по этому адресу положат не ноль.


Я немного подправил исходный код. Что происходит. В первой строчке создаётся указатель parser1, который имеет значение NULL и некий адрес, пусть, например 0x..01.
Далее вызывается функция function, при этом ей передаётся параметр parser1, который имеет значение NULL и адрес 0x..01. При вызове функции происходит копирование значений параметров. В данном случае скопируется NULL. Адрес parser1 копироваться не будет, т.к. мы передаём не &parser1, а просто parser1.
Т.е. на входе функция function имеет параметр parser2 со значением NULL. Естественно этот параметр тоже где-то расположен и имеет некий адрес, например 0x..22.
Далее создаётся новый экземпляр CTLVParser, результатом операции new будет новый указатель, имеющий значение {new CTLVParser()}, это значение и будет записано в ячейку памяти parser2. Т.е. теперь parser2 имеет ненулевое значение. Но напомню, что parser2 — это всего лишь локальная переменная, находящаяся по адресу 0x..22, которая ничего не знает о переменной parser1 (адрес 0x..01). При завершении функции адрес 0x..22 станет недоступен, а память утечёт.
После вызова функции удаляется память, расположенная в ячейке parser1. Т.к. там лежал NULL и никто его не менял, то delete просто проигнорирует это значение.

Исправить код можно, если вместо CTLVParser* принимать на вход CTLVParser**. Тогда функция сможет получить тот самый заветный адрес 0x..01 и возможно, что-то туда сохранит.

Кстати, замечу, что подобная ситуация будет и в Java и в C#.
Re[6]: Любой программный продукт портят студенты и индусы
От: nizle Россия  
Дата: 22.06.11 20:26
Оценка:
Здравствуйте, alzt, Вы писали:

И правда. Мне по невнимательности показалось, что там указатель возращается из функции.
Re[4]: Любой программный продукт портят студенты и индусы
От: LaptevVV Россия  
Дата: 22.06.11 20:40
Оценка:
Здравствуйте, Олег К., Вы писали:

M>>>>В итоге получается убожество, этакий франкенштейн — здесь и веб сервисы, и Remoting, кое-где на силу пришитый threading. Паттерн на паттерне и паттерном погоняет.

___>>>У Вас какое-то нездоровое отношение к паттернам.
___>>>Это всего лишь готовые решения строго определенных задач

W>>Паттерны это даже не решения, а лишь идеи решения некоторых типовых задач.


ОК>Я бы сказал не типовых, а надуманных задач.

Нифига не надуманных! Мы вот сварганили неплохую систему проверки лабов. В основе — шаблонный метод и стратегия. Это позволяет наращивать систему без модификаций основного ядра.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Любой программный продукт портят студенты и индусы
От: LaptevVV Россия  
Дата: 22.06.11 20:45
Оценка:
Здравствуйте, alzt, Вы писали:

A>>>Только в данном случае будет утечка, т.к. "delete parser" вызовется для нуля.

N>>Не будет утечки, этот указатель передается в функцию, там по этому адресу положат не ноль.

A>Я немного подправил исходный код. Что происходит. В первой строчке создаётся указатель parser1, который имеет значение NULL и некий адрес, пусть, например 0x..01.

A>Далее вызывается функция function, при этом ей передаётся параметр parser1, который имеет значение NULL и адрес 0x..01. При вызове функции происходит копирование значений параметров. В данном случае скопируется NULL. Адрес parser1 копироваться не будет, т.к. мы передаём не &parser1, а просто parser1.
A>Т.е. на входе функция function имеет параметр parser2 со значением NULL. Естественно этот параметр тоже где-то расположен и имеет некий адрес, например 0x..22.
A>Далее создаётся новый экземпляр CTLVParser, результатом операции new будет новый указатель, имеющий значение {new CTLVParser()}, это значение и будет записано в ячейку памяти parser2. Т.е. теперь parser2 имеет ненулевое значение. Но напомню, что parser2 — это всего лишь локальная переменная, находящаяся по адресу 0x..22, которая ничего не знает о переменной parser1 (адрес 0x..01). При завершении функции адрес 0x..22 станет недоступен, а память утечёт.
A>После вызова функции удаляется память, расположенная в ячейке parser1. Т.к. там лежал NULL и никто его не менял, то delete просто проигнорирует это значение.

A>Исправить код можно, если вместо CTLVParser* принимать на вход CTLVParser**. Тогда функция сможет получить тот самый заветный адрес 0x..01 и возможно, что-то туда сохранит.


A>Кстати, замечу, что подобная ситуация будет и в Java и в C#.

Как многа букаф...
Тут ясно с тех слоув: указатель передается по значению.
Остальное — следствие сего печального факта: в функции создается локальная копия, в которую и помещается адрес. При выходе из функции локальная копия умирает, и вуаля — имеем потерянную ссылку.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Любой программный продукт портят студенты и индусы
От: msk78 Россия http://miccro.livejournal.com
Дата: 27.06.11 12:48
Оценка: 2 (1)
Здравствуйте, Michael7, Вы писали:

M>Здравствуйте, mik1, Вы писали:


M>>Но это не индийский метод. Этот хлопец сначала собрал 16-ную строку, само собой, при помощи деления и остатка от деления на 16. Именно строку (String). А дальше уже он конвертирует ее как десятичную строку в число, поскольку, как он правильно понял, в строке не может быть символов A-F...

M>>Интересно их код читать — такие затейники Понятно, почему именно они Камасутру написали...

M>Интересно, что у них с образованием? Нормальный-то человек, просто знает в минимальном объеме битовые операции и представление чисел.


Мне думается,что дело не в образовании, а в особенностях собеседования.

Наши расейские мальчики-зайчики а-ля Каа.Питон или Икемефула то же ещё те затейники.
Но только на собеседованиях.

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

Индус за тот же месяц нанимает целую команду, включая тим-лида и говорит: "Что делать, хазяина? Работать хотим."

Ну, выгонят пятерых из 20, ну напишет индус что-то криво — да и х$# с ним — проект получен, люди работают, караван идёт.
Re[4]: Любой программный продукт портят студенты и индусы
От: msk78 Россия http://miccro.livejournal.com
Дата: 27.06.11 13:18
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Здравствуйте, mik1, Вы писали:


M>>Но это не индийский метод. Этот хлопец сначала собрал 16-ную строку, само собой, при помощи деления и остатка от деления на 16. Именно строку (String). А дальше уже он конвертирует ее как десятичную строку в число, поскольку, как он правильно понял, в строке не может быть символов A-F...

M>>Интересно их код читать — такие затейники Понятно, почему именно они Камасутру написали...

M>Интересно, что у них с образованием? Нормальный-то человек, просто знает в минимальном объеме битовые операции и представление чисел.


Точнее, я согласен, в образовании — просто индусы набирают индусов с любым образованием.
Возможно, это одна из причин почему они врут в резюме — всё равно, если попадёшь на собеседование к индусу, а вероятность этого велика, то проверять никто ничего не будет.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.