Re[5]: Уши C++ или C++ style vs C# style
От: sergeyt4  
Дата: 26.09.12 20:01
Оценка:
Здравствуйте, Begemot_, Вы писали:

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


V>>подразумевается буквально префиксы у полей, у вас каждое поле начинается со знака подчеркивания, что не рекомендуется делать микрософтом.

B_>Да я знаю что MS этого требования нету, но в том стандарте кодирования что мне дали написано что приватные поля класса должны начинаться с "_", и это кстати, единственное что мне там активно не понравилось Ну и решарпер с настройками по умолчанию тоже требует того же. Мне конечно не понравилось, но что делать сказали надо, значит надо. Тем более что отрефакторить готовый код перед отсылкой не сложно


>>К слову, топикстартера с таким кодом я бы взял, причём даже не на джуниора.

B_>Ну у меня тоже есть версия что отказали именно по этому, им вроде нужны джуниоры и когда я сказал что шарпа в глаза не видел — сказали, что ничего страшного, подойду. Видимо код их смутил, не стоило так серьёзно относится к тестовому заданию наверное

Да, скорей всего вы правы по поводу причины отказа — ваш код на джуниора не тянет, тут чувствуется гораздо более высокий уровень. Джуниор, как мне кажется, не додумался бы Monitor.Pulse/Wait использовать. Так что дело даже не в стиле оформления.

А по поводу префиксов не парьтесь — их практически все используют — надо же как-то отличать локальные переменные от полей. А писать this постоянно — утомительно и громоздко.
Re[2]: Уши C++ или C++ style vs C# style
От: alexzz  
Дата: 28.09.12 10:19
Оценка:
C>1.Проверки на bool. Везде пишете ==false, в C# для булевых переменных не принятно обычно

Не принято, но вообще имеет смысл. Я сознательно в своём коде в условиях пишу if (condition == false) вместо if (!condition) просто потому, что эту false всегда легко видно (студия ещё и цветом выделяет как ключевое слово), а восклицательный знак маленький, иногда его не замечаю. Впрочем, я на C# за деньги не пишу, так что могу творить в своём коде всё, что хочу.
Re[3]: Уши C++ или C++ style vs C# style
От: sergeyt4  
Дата: 28.09.12 11:31
Оценка:
Здравствуйте, alexzz, Вы писали:

C>>1.Проверки на bool. Везде пишете ==false, в C# для булевых переменных не принятно обычно


A>Не принято, но вообще имеет смысл. Я сознательно в своём коде в условиях пишу if (condition == false) вместо if (!condition) просто потому, что эту false всегда легко видно (студия ещё и цветом выделяет как ключевое слово), а восклицательный знак маленький, иногда его не замечаю. Впрочем, я на C# за деньги не пишу, так что могу творить в своём коде всё, что хочу.


Не принято, потому что в отличие от C++ в C# и так нельзя в if() подсунуть что-либо другое, кроме bool.

Писать if (b == false) имеет смысл только в случае, когда b имеет тип bool? (nullable bool). Тогда b может иметь три значения: null, true, false.
Re: Уши C++ или C++ style vs C# style
От: Аноним  
Дата: 01.06.13 15:39
Оценка:
Stop hack the program!!!
message
Re[4]: Уши C++ или C++ style vs C# style
От: alexzz  
Дата: 01.06.13 15:55
Оценка:
Здравствуйте, sergeyt4, Вы писали:

C>>>1.Проверки на bool. Везде пишете ==false, в C# для булевых переменных не принятно обычно


A>>Не принято, но вообще имеет смысл. Я сознательно в своём коде в условиях пишу if (condition == false) вместо if (!condition) просто потому, что эту false всегда легко видно (студия ещё и цветом выделяет как ключевое слово), а восклицательный знак маленький, иногда его не замечаю. Впрочем, я на C# за деньги не пишу, так что могу творить в своём коде всё, что хочу.


S>Не принято, потому что в отличие от C++ в C# и так нельзя в if() подсунуть что-либо другое, кроме bool.

S>Писать if (b == false) имеет смысл только в случае, когда b имеет тип bool? (nullable bool). Тогда b может иметь три значения: null, true, false.

Раз уж тебя всплыла, ещё один довод в пользу явной проверки на false:

if (a && b && c == false)
{
}

if (!(a && b && c))
{
}

У оператора == приоритет ниже, чем у !, поэтому нет необходимости в лишних скобках, которые уменьшают читаемость кода.
Re: Уши C++ или C++ style vs C# style
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 01.06.13 15:57
Оценка:
Маленький комент не совсем по теме: "реализовать" переводится как "to implement", а "to realize" означает "осознать".
Ce n'est que pour vous dire ce que je vous dis.
Re: Уши C++ или C++ style vs C# style
От: a_g_99 США http://www.hooli.xyz/
Дата: 01.06.13 16:19
Оценка:
Здравствуйте, Begemot_, Вы писали:

B_>Больше комментариев нет, а мне вот интересно что-же так такого страшного? Если бы дело в том что плохо написал задание, там какие-то проблемы или плохой код — я бы понял, но смущает именно упор на том что это "написано не на С#". Кто-нибудь может показать вкратце где тут проблемы и как надо было правильно делать.


Долго разрабатываю на С++ & C#. Если не придираться к мелочам — ваш код хороший, каких-либо концептуальных проблем. Главная ошибка которую вы допустили — написали слишком хороший и сложный код для понимания дебилам которые его проверяли. Если вы огорчены, то рассматривайте "эту неудачу" как науку на будущее. Есть старая пословица — у обычного software developer при виде технического представителя работодателя вид должен быть лихой и придурковатый. А вы их вместо этого унижаете вместо этого своим интеллектом. Теоретически надо радоваться, но я не нахожусь в вашей ситуации
Re[4]: Уши C++ или C++ style vs C# style
От: Аноним  
Дата: 01.06.13 17:49
Оценка:
Здравствуйте, GGoga, Вы писали:

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

Если я сижу без работы, то всегда пишу все тестовые задания, даже те которые на неделю и особенно по незнакомым темам — чисто в порядке собственного экспириенса.
Re[3]: Уши C++ или C++ style vs C# style
От: Аноним  
Дата: 01.06.13 18:11
Оценка:
Здравствуйте, Философ, Вы писали:

SS>>2. Ваш BegBlockedQueue2 не реализует IEnumerable<T> и других итерфейсов, обычных для .net коллекций.

Ф>круто, ч0!
Ф>здесь реализация этого интерфейса вообще-то сильно усложняет задание.
Ф>оно нужно?
Нужно... Автора просили писать в стиле С#, а IEnumerable<T> это и есть часть стиля C#.
Оттого и не понравились, наверное, циклы for, ибо IEnumerable работает с foreach.
Re: Уши C++ или C++ style vs C# style
От: -n1l-  
Дата: 12.08.13 03:52
Оценка: 1 (1) -1
Здравствуйте, Begemot_, Вы писали:

B_>Лет 10 пишу в основном на С++ и немного на других языках, C# не пробовал.

Возьмите меня в подаваны? Пожалуйста.

B_>Прочел полкнижки по шарпу, написал задание. Вердикт был в стиле "вы были правы, это написано на с++, а не c#, так что к сожалению не подойдете".

Они не правы.

B_> Предложили работу джуниором на С# честно сказал что его не знаю, но давно думаю освоить. Сказали — мы верим что с вашим опытом вы сможете, напишите тестовое задание, а мы посмотрим.

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

B_>Больше комментариев нет, а мне вот интересно что-же так такого страшного? Если бы дело в том что плохо написал задание, там какие-то проблемы или плохой код — я бы понял, но смущает именно упор на том что это "написано не на С#". Кто-нибудь может показать вкратце где тут проблемы и как надо было правильно делать.


Я нашел в вашем коде недостаток, который видимо заметили работодатели.
Барабанная дробь!
В вашем коде не применены интерфейсы.
Вы наверное удивлены, но это самый основной недостаток, который я увидел. Другое, как справедливо заметили предыдущие коллеги — мелочи.
Дело в том, что когда вас просят написать какой-то класс на c#, особенно когда это коллекция, нужно задуматься о применении интерфейсов. IEnumerable<T>, ICollection<T>, IQueue<T>.
Благодаря этим интерфейсам, вы зададите архитектуру класса которая вам нужна, без доп. коллекций(видимо этого от вас ждали).
Плюс, вам станут доступны методы из LINQ для этих коллекций.
For example, вы хотите реализовать связанный список на C#, реализуете в своем связанном списке интерфейс IEnumerqable<T> и вот по вашему списку можно пройти циклом Foreach.
По вашей коллекции нельзя, к сожалению.
Вот собственно и все. Может кто-то найдет еще что-то. Но я думаю у вас там с многопоточностью все в порядке.
Re: Уши C++ или C++ style vs C# style
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.08.13 06:50
Оценка:
Здравствуйте, Begemot_, Вы писали:

B_>p.s. Вопрос не о том сделано ли задание хорошо или плохо, вопрос о стиле кода — что в нем неправильного с точки зрения C# и что показывает на привычку писать на C++.


Предлагаю просто поставить resharper, прогнать проверки на StyleCop и Visual Studio Code Analysis\FxCop.

Разговоры о стиле кода на форуме бесполезны.
Re: Уши C++ или C++ style vs C# style
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 14.08.13 17:39
Оценка:
Здравствуйте, Begemot_, Вы писали:

B_>Лет 10 пишу в основном на С++ и немного на других языках, C# не пробовал. Предложили работу джуниором на С# честно сказал что его не знаю, но давно думаю освоить. Сказали — мы верим что с вашим опытом вы сможете, напишите тестовое задание, а мы посмотрим. Прочел полкнижки по шарпу, написал задание. Вердикт был в стиле "вы были правы, это написано на с++, а не c#, так что к сожалению не подойдете".


Нормальный код. Может быть усомнились в других качествах, а в официальном ответе просто соврали.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.