Café Québécois

Квебекское кафе

Текущее время: 17 ноя 2017, 18:27

Часовой пояс: UTC − 5 часов




Начать новую тему Ответить на тему  [ Сообщений: 406 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14  След.
Автор Сообщение
СообщениеДобавлено: 15 май 2017, 10:03 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
елкапалка писал(а):
Ольга_ писал(а):
Наверное, придется изучить C#. :lol:

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

Стоит или не стоит и какие мечты что разрушит - это мне лучше знать. И по поводу разочарований - не торопитесь, я тут почитала статью о сравнении linq и stream и не все так однозначно, по крайней мере, автор не считает, что stream уступает linq.


У них разница в 7 лет разработки
Конечно, уступает

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 11:21 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
Ольга_ писал(а):
loco писал(а):

Это ничего, это пройдет
Когда я был 27-летним супер программистом с примерно 5-6 летним опытом, я так же думал

Это не только я думаю, так думают все, с кем я работала/работаю. Существуют же объективные показатели уровня программиста. :wink:


Я про безапелляционность

Цитата:
Цитата:
Я все еще не вижу разницы между проверкой на нулл обьекта, или проверкой на нулл обьекта внутри Optional
Точно так же можно гнать программистов, не проверяющих на нулл, тем более что intellij об этом предупредит, да и @Nullable никто не отменял

Не видите - значит не парьтесь, слушайтесь intellij.


Вы нелогичны
Проверка на нулл - зло, проверка на isPresent() нет. Хотя и там, и там - проверка
Аргументация не очень, прямо скажем. Если программиста можно натаскать на проверку одного, то что мешает натаскать на проверку другого?

Я вам уже объяснила, не понимаете - я больше ничего сделать не могу. Возможно, со временем поймете разницу. А нет - так забейте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 11:28 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
Ольга_ писал(а):
loco писал(а):
Ольга_ писал(а):
О flyweight pattern слышали? Но тут даже так сильно мудрить не надо - создайте один пустой лист и возвращайте, если он впоследствии не будет модифицироваться. В Джаве для таких случаев есть Collections.emptyList(), который нельзя модифицировать.


Ну вы-то его сразу не предложили:) Т.е., не подумали, "а что если", а предложили сходу неоптимальное и несколько опасное решение, эрго гнать вас надо:)

Я вообще не предлагала конкретную имплементацию, я сказала, что если лист пустой - возвращайте пустой лист, а не null, а уж как это будет вополощено в коде - это уже кто на что способен.


Я это и называю - не подумали, а что если
Непрофессионально, думать надо всегда, не полагаясь на заученные паттерны. Разница-то есть между созданием обьекта и обращением к уже существующей статической immutable коллекции.

Не надо меня учить профессионализму. Написав new ArratList<>() я показала, что имею в виду под пустым листом, после того как поняла, что тут многие вещи понимают по-другому, после спора о создании пустых объектов. Collections.emptyList() тоже создает объект, просто один раз и лист не модифицируется. То есть это уже частный случай создания листов, меня не интересовали частные случаи, мне было нужно лишь показать, что я понимаю под пустым листом в доступной для всех, не только джаваистов, форме. Не надо придираться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 11:31 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
Я вам уже объяснила, не понимаете - я больше ничего сделать не могу. Возможно, со временем поймете разницу. А нет - так забейте.


Что, стыдно признаться, что и сами понимаете, что разницы никакой?

пс Девушка. Я писал код еще когда вы еще в детсад ходили. Не надо вот этого "со временем поймете разницу", некрасиво.

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 11:32 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
Ольга_ писал(а):
елкапалка писал(а):
Ольга_ писал(а):
Наверное, придется изучить C#. :lol:

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

Стоит или не стоит и какие мечты что разрушит - это мне лучше знать. И по поводу разочарований - не торопитесь, я тут почитала статью о сравнении linq и stream и не все так однозначно, по крайней мере, автор не считает, что stream уступает linq.


У них разница в 7 лет разработки
Конечно, уступает

Уступала, согласна. Но мы живем сегодня, в сейчас есть Java 8 со streamом, который, по мнению людей, знающих и C#, и Java, C# не уступает. "Последние станут первыми". :lol:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 11:35 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
Ольга_ писал(а):
Я вам уже объяснила, не понимаете - я больше ничего сделать не могу. Возможно, со временем поймете разницу. А нет - так забейте.


Что, стыдно признаться, что и сами понимаете, что разницы никакой?

пс Девушка. Я писал код еще когда вы еще в детсад ходили. Не надо вот этого "со временем поймете разницу", некрасиво.

Я вам на нескольких страницах написала, какая разница, статьи компетентных людей приводила - но для вас разницы нет.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 11:39 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
Не надо меня учить профессионализму. Написав new ArratList<>() я показала, что имею в виду под пустым листом, после того как поняла, что тут многие вещи понимают по-другому, после спора о создании пустых объектов. Collections.emptyList() тоже создает объект, просто один раз и лист не модифицируется. То есть это уже частный случай создания листов, меня не интересовали частные случаи, мне было нужно лишь показать, что я понимаю под пустым листом в доступной для всех, не только джаваистов, форме. Не надо придираться.


А почему б не поучить, если вы не видите особой разницы между созданием кучи обьектов в цикле и созданием immutable обьекта один раз?
Не бывает мелочей в программизме, бывают только допустимые flaws

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 11:41 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
Ольга_ писал(а):
Не надо меня учить профессионализму. Написав new ArratList<>() я показала, что имею в виду под пустым листом, после того как поняла, что тут многие вещи понимают по-другому, после спора о создании пустых объектов. Collections.emptyList() тоже создает объект, просто один раз и лист не модифицируется. То есть это уже частный случай создания листов, меня не интересовали частные случаи, мне было нужно лишь показать, что я понимаю под пустым листом в доступной для всех, не только джаваистов, форме. Не надо придираться.


А почему б не поучить, если вы не видите особой разницы между созданием кучи обьектов в цикле и созданием immutable обьекта один раз?
Не бывает мелочей в программизме, бывают только допустимые flaws

Кто вам сказал, что я не вижу разницу? Хватит фантазировать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 11:49 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
Ольга_ писал(а):
Не надо меня учить профессионализму. Написав new ArratList<>() я показала, что имею в виду под пустым листом, после того как поняла, что тут многие вещи понимают по-другому, после спора о создании пустых объектов. Collections.emptyList() тоже создает объект, просто один раз и лист не модифицируется. То есть это уже частный случай создания листов, меня не интересовали частные случаи, мне было нужно лишь показать, что я понимаю под пустым листом в доступной для всех, не только джаваистов, форме. Не надо придираться.


А почему б не поучить, если вы не видите особой разницы между созданием кучи обьектов в цикле и созданием immutable обьекта один раз?
Не бывает мелочей в программизме, бывают только допустимые flaws

Еще раз для особо непонятливых - частные случаи - это для имплементации. Моя цель была показать, что нужно вернуть пустой лист, и что бы вы не подумали, что пустой лист - это что то еще, кроме new ArrayList<>(), or new LinkedList<>() or any other implementation of List, я написала этот пример. Я не знаю, есть ли аналог Collections в C#, но я знаю, что new ArrayList<>() должно быть понятно. Это не код, это прояснение терминологии. И как после этого относиться к вашему опыту, если вы при малейшей возможности начинаете придираться и переходить на троллинг?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 11:56 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
Я вам на нескольких страницах написала, какая разница, статьи компетентных людей приводила - но для вас разницы нет.


еще раз
В чем разница между
if(obj != null) и if(optional.isPresent())?
Вы внутрь isPresent загляните - там будет ровно та же проверка на нулл
Т.е., вы завернули проверку любого обьекта на нулл в отдельный класс, и говорите о драматической разнице?

нормальная реализация подобного выглядит так:
var veryFarProperty = objCanBeNull?.objCanBeNull.Prop1?.Prop1Prop2?.Prop1Prop2Prop3?.VeryFarProperty; - вот тут нет проверок на нулл, и ексепшн не выбросится
В этом суть монад, елки-палки, а не в проверке isPresent - это та же проверка на нулл, спрятанная внутри функции

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


И откуда ж вам про мои знания-то знать? Ваши - вы продемонстрировали; я лично в них вижу достаточно нерассуждающий догматизм. Эти сеньоры, о которых вы говорите, они ведь такие же, просто у них догмы постарше будут. Чем вы от них отличаетесь-то?

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 11:59 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
Еще раз для особо непонятливых - частные случаи - это для имплементации. Моя цель была показать, что нужно вернуть пустой лист


Для особо непонятливых - надо четко понимать, в каких случаях что возвращать, и быть точным в выражениях, пустые листы разные бывают
А для этого надо читать этот, как вы выразились, детсад на stackoverflow, и не считать, что вы уже все знаете
Как говорится, и умнее нас есть, а в Крестах сидят(ц)

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Последний раз редактировалось loco 15 май 2017, 12:11, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 12:08 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
Уступала, согласна. Но мы живем сегодня, в сейчас есть Java 8 со streamом, который, по мнению людей, знающих и C#, и Java, C# не уступает. "Последние станут первыми". :lol:


линк - это не отдельная фича, это часть довольно-таки радикальной модификации дотнета, включающей в себя другие связанные с линком фичи, типа extension classes, anonymous classes, expression trees и проч. И все эти годы они не стояли на месте, так что догнать вряд ли уже получится.
Наверное, если брать чисто линк как средство манипуляции данными в коллекциях, может, и не уступает. Но это только часть

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 12:10 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
статьи компетентных людей приводила


Кстати
Мне статьи компетентных людей - до лампочки; это повод попробовать разобраться самому. Это не катехезис, это всего лишь мнение
А для вас?

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 13:44 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
Ольга_ писал(а):
Я вам на нескольких страницах написала, какая разница, статьи компетентных людей приводила - но для вас разницы нет.


еще раз
В чем разница между
if(obj != null) и if(optional.isPresent())?
Вы внутрь isPresent загляните - там будет ровно та же проверка на нулл
Т.е., вы завернули проверку любого обьекта на нулл в отдельный класс, и говорите о драматической разнице?

нормальная реализация подобного выглядит так:
var veryFarProperty = objCanBeNull?.objCanBeNull.Prop1?.Prop1Prop2?.Prop1Prop2Prop3?.VeryFarProperty; - вот тут нет проверок на нулл, и ексепшн не выбросится
В этом суть монад, елки-палки, а не в проверке isPresent - это та же проверка на нулл, спрятанная внутри функции

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


И откуда ж вам про мои знания-то знать? Ваши - вы продемонстрировали; я лично в них вижу достаточно нерассуждающий догматизм. Эти сеньоры, о которых вы говорите, они ведь такие же, просто у них догмы постарше будут. Чем вы от них отличаетесь-то?

Внутри optional проверка будет происходить автоматически, программисту писать код не надо. Когда программист видит объект, он не всегда проверит его на null - либо забудет, либо посчитает, что объект всегда должен присутствовать, либо еще по какой-то причине, NullPointerException не была бы такой распространенной ошибкой, если бы пропустить проверку на null не было так легко. Но когда программист видит не просто объект, а wrapper Optional - он понимает, что объекта может не быть, и поэтому проверит. С optional это очевидно, с обычным объектом - нет. В написании кода надо стремиться к тому, чтобы код был как можно более прозрачным, понятным, и декларируя Optional вы показываете тем, кто будет работать с вашим методом, что есть вероятность, что объекта не будет. Естественно, я не говорю, что всегда надо использовать Optional, но чаще всего это способ написать чистый код и избежать NullPointerException.

Мне не важно, что вы обо мне думаете, вы для меня не авторитет в программировании, извините. Сильные программисты не распределяют радиосигналы, а занимаются более интересными и высокооплачиваемыми проектами. Я вижу, что вы интересуетесь программированием, занимаетесь этим не только ради денег, вам это действительно нравится, но у вас есть определенный лимит, с вами сложно вести конструктивный диалог, вы придираетесь к незначительному и не замечаете (может, потому что не понимаете) существенное. Вы говорите - это плохо, потому что мне не нравится, а хотите узнать почему - сравните сами с другими языками. У меня лично сложилось мнение, что вы где-то что-то прочитали, где-то что-то услышали, благо что Джаву критикуют все, кому ни лень, включая самих джавистов, но в сути не разобрались и объяснить, что конкретно плохо, не можете. Это звучит очень по-дилетантски, поэтому у меня сформировалось соответствующее мнение.


Последний раз редактировалось Ольга_ 15 май 2017, 13:59, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 13:57 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
Ольга_ писал(а):
статьи компетентных людей приводила


Кстати
Мне статьи компетентных людей - до лампочки; это повод попробовать разобраться самому. Это не катехезис, это всего лишь мнение
А для вас?

Для меня нет. Мне интересно мнение компетентных людей. Когда человек создает какую-то новую фичу, то интересно, какая причина побудила его создать эту фичу, что за этим стоит, какую проблему он пытался решить. Поэтому я стараюсь найти эту информацию, и не пренебрегаю статьями разработчиков языка, на котором пишу. А вот многие споры на stackoverflow мне действительно до лампочки.

Возможно, у вас сложилось мнение, что я читаю какую-то статью, мне кажется, что ее написал компетентный человек, и я делаю так, как он говорит. Это не так. Я умею анализировать самостоятельно, и перед тем, как принять решение принять определенный паттерн, я стараюсь узнать все его плюсы и минусы. В случае с optional я не нашла ни одного компетентного мнения по поводу плюсов использования null vs Optional. И сильные программисты, с которыми я работала, и разработчики Джавы рекомендуют употреблять optional, и я лично вижу в нем плюсы, которые я перечислила, и только один маленький минус. Минус может вырасти в большой при определенных имплементациях, поэтому и с Optional, естественно, надо быть осторожным. Но в большинстве простых случаев, например, как я привела - получить объект из базы данных, - он решает проблему и предпочтительнее null.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 14:26 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
Внутри optional проверка будет происходить автоматически, программисту писать код не надо. Когда программист видит объект, он не всегда проверит его на null - либо забудет, либо посчитает, что объект всегда должен присутствовать, либо еще по какой-то причине, NullPointerException не была бы такой распространенной ошибкой, если бы пропустить проверку на null не было так легко.


Это в вашем мире
А я вот, сколько себя и коллег(разных) помню, это самое обычное дело - проверка на нулл(указателя, ссылки).
Вот вы - проверяете на нулл, или забываете?

Цитата:
Но когда программист видит не просто объект, а wrapper Optional - он понимает, что объекта может не быть, и поэтому проверит. С optional это очевидно, с обычным объектом - нет.


А в жаве что, нету четкого разделения на value&reference types? Вроде есть. И любой ref type может быть нулл. Это очевидно, по-моему, это базовая база. Неочевидно это, если чел язык не знает, но тогда ему и optional не поможет

Цитата:
Естественно, я не говорю, что всегда надо использовать Optional, но чаще всего это способ написать чистый код и избежать NullPointerException.


Ну так это не панацея и не чистый код, это переусложненный код, т.к. в любом случае делается проверка на нулл, только во втором случае сложнее
нормальное использование Optional - это что-то вроде
Collection myResArray = getOptionalMyObject().map(MyObject::getMyResArray).orElse(Collection.emptyList());//извиняюсь, если неправильно написал, нету компилятора под рукой

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


Хы-хы
А написание комп. игр подойдет? Предсказание скачков акций на бирже? Управление роботами для производства процессоров?:) Что, по-вашему, серьезные проекты? 3д этот? ну так для вот этого - http://www.ibwave.com/en/ibwave-design-enterprise я в свое время 3д моделлер писал. Люблю похвастаться!!!

Цитата:
Я вижу, что вы интересуетесь программированием, занимаетесь этим не только ради денег, вам это действительно нравится, но у вас есть определенный лимит, с вами сложно вести конструктивный диалог, вы придираетесь к незначительному и не замечаете (может, потому что не понимаете) существенное.


Да, безусловно я придираюсь к мелочам, потому что мелочей в программинге не бывает
Нет, я безусловно замечаю и понимаю существенное, в нашем споре - это отсутствие разницы между проверкой != null и isPresent, т.к. это в любом случае проверка. Толковый программер не будет ее забывать, бестолковый - будет, вне зависимости от
Я понимаю вашу идею, мол, он увидит, что это не просто обьект, а Optional, и тут же задумается - дай-ка я проверю, а не пустой ли это обьект. Мне это предположение кажется довольно натянутым

Цитата:
Вы говорите - это плохо, потому что мне нравится, а хотите узнать почему - сравните сами с другими языками. У меня лично сложилось мнение, что вы где-то что-то прочитали, где-то что-то услышали, благо что Джаву критикуют все, кому ни лень, включая самих джавистов, но в сути не разобрались и объяснить, что конкретно плохо, не можете. Это звучит очень по-дилетантски, поэтому у меня сформировалось соответствующее мнение.


Да, я и не скрываю, что жаву знаю плохо. Вернее, не так хорошо, как хотелось бы
Но по сути, мы спорили сперва о монадах - а функц. программирование я вроде знаю. Потом мы спорили про null vs empty obj - про это я тоже знаю. Далее, точность формулировок - про массивы. И это я знаю, т.к. коллекции не только в жаве есть!
Ну и последнее - про nullable obj vs Optional. Тут мои знания хромают, но достаточны, чтоб понять что isPresent - это замаскированная проверка на нулл
Так в чем же я дилетант?

Вас я, заметье, дилетантом не называю. Так может и вам стоило бы быть повежливее?

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 14:34 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
Для меня нет. Мне интересно мнение компетентных людей. Когда человек создает какую-то новую фичу, то интересно, какая причина побудила его создать эту фичу, что за этим стоит, какую проблему он пытался решить. Поэтому я стараюсь найти эту информацию, и не пренебрегаю статьями разработчиков языка, на котором пишу. А вот многие споры на stackoverflow мне действительно до лампочки.


Понятно
Программер, который не контрибьютит на stackoverflow, многое теряет. Хотя бы возможность понять, что он не такой умный, каким себя считает
Ну и многие разработчики даже и жавы вполне там обретаются. Вы еще скажите, что у вас на гитхабе проектов нету!

Цитата:
В случае с optional я не нашла ни одного компетентного мнения по поводу плюсов использования null vs Optional. И сильные программисты, с которыми я работала, и разработчики Джавы рекомендуют употреблять optional, и я лично вижу в нем плюсы, которые я перечислила, и только один маленький минус. Минус может вырасти в большой при определенных имплементациях, поэтому и с Optional, естественно, надо быть осторожным. Но в большинстве простых случаев, например, как я привела - получить объект из базы данных, - он решает проблему и предпочтительнее null.


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

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 16:18 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):

Это в вашем мире
А я вот, сколько себя и коллег(разных) помню, это самое обычное дело - проверка на нулл(указателя, ссылки).
Вот вы - проверяете на нулл, или забываете?

Если скажу, что нет - вы поверите? :lol: Не помню, чтобы по моей вине когда-то были NullPointerException. Но не отрицаю, что когда-то где-то могла забыть.

В работе сталкивалась часто. На первой работе в Ванкувере, как я уже сказала, один из первых багов - не проверили объект, возвращаемый из базы данных. Сегодня только читала документацию на работе о крупной планируемой модификации кода. На этой работе, в отличие от предыдущей, гораздо более серьезное отношение к коду и программисты в основном сильные, но сколько людей работало до нас, кто там как писал - в общем, в документации было написано, что одна из проблем, с которой придется столкнуться - во многих методах нет проверки на null, а модификация заключается в том, что определенный параметер будет возвращаться null. Так что пропускают, как видите.


Цитата:
Ну так это не панацея и не чистый код, это переусложненный код, т.к. в любом случае делается проверка на нулл, только во втором случае сложнее

Этот код гораздо чище, чем возврат null. Я больше спорить об этом не буду. Я привела достаточно аргументов, не принимаете - ваше дело.

Цитата:
Хы-хы
А написание комп. игр подойдет? Предсказание скачков акций на бирже? Управление роботами для производства процессоров?:) Что, по-вашему, серьезные проекты? 3д этот? ну так для вот этого - http://www.ibwave.com/en/ibwave-design-enterprise я в свое время 3д моделлер писал. Люблю похвастаться!!!

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

Написание игр у нас в универе было ординарными заданиями. На курсе Компьютерные игры мы писали даже на Unity3D с серьезной графикой. Предсказание скачков - это machine learning на Python? Я писала предсказание, какого типа пассажиры имели больше шансов на спасение на Титанике, просто развлечение и способ изучить пайтоновские библиотеки для machine learning, опять же игра с Monte Carlo simulation была проектом в универе - все это фигня, а вот большие проекты, distributed systems, big data, когда твоей программой пользуются миллионы людей, и тебе надо учесть все до мелочей - и scaling, и кэши, и multithreading, и network failures, и находить оптимальные алгоритмы, чтобы вся эта махина работала быстро и без ошибок в продакшн - вот это для меня challenge.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 16:33 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
Понятно
Программер, который не контрибьютит на stackoverflow, многое теряет. Хотя бы возможность понять, что он не такой умный, каким себя считает
Ну и многие разработчики даже и жавы вполне там обретаются. Вы еще скажите, что у вас на гитхабе проектов нету!

Не контрибьютю, потому что считаю, что там есть более знающие программисты, чем я, которые помогут. Я вообще очень скромная, плюс у меня Impostor syndrome, просто здесь разошлась, потому что не вижу серьезных аргументов, которые могли бы меня стушевать. А вообще в жизни я склонна недооценивать свои способности. Мне обычно повышают самооценку окружающие, особенно когда выделают меня из многих кандидатов и дают джоб офер, а потом начинают со мной советоваться. Это очень круто и вселяет уверенность. Но давать советы на stackoverflow мне кажется еще рано. Сама я туда часто хожу, когда есть вопросы. Споры типа пустых объектов я считаю пустыми, но на многие вопросы там можно получить компетентный ответ. На гитхабе проекты есть, тут можете не волноваться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 17:00 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
Так что пропускают, как видите.


я знаю
Но с нормальной qa такие баги ловятся на этапе разработки. Я же говорил уже, что есть такое мнение, что чем раньше оно случится, тем лучше - в продакшн не пойдет

Цитата:
Цитата:
Ну так это не панацея и не чистый код, это переусложненный код, т.к. в любом случае делается проверка на нулл, только во втором случае сложнее

Этот код гораздо чище, чем возврат null. Я больше спорить об этом не буду. Я привела достаточно аргументов, не принимаете - ваше дело.


Я вам говорю, что использование Optiona.isPresent как проверки существования возвращенного обьекта это неправильно, оно не для этого.
Ладно
Не верите мне - смотрите вашу же статью - http://www.oracle.com/technetwork/artic ... 75753.html

You can also use the isPresent() method to find out whether a value is present in an Optional object. In addition, there's a get() method that returns the value contained in the Optional object, if it is present. Otherwise, it throws a NoSuchElementException. The two methods can be combined, as follows, to prevent exceptions:

if(soundcard.isPresent()){
System.out.println(soundcard.get());
}

However, this is not the recommended use of Optional (it's not much of an improvement over nested null checks), and there are more idiomatic alternatives, which we explore below.

Мне ваши предосторожности напоминают одну контору, которая писала на с++, но запрещала программерам использовать арифметику указателей и прямые операции с памятью - потому что это опасно, и не очень опытные разработчики могут налажать:)

Цитата:
Написание игр у нас в универе было ординарными заданиями. На курсе Компьютерные игры мы писали даже на Unity3D с серьезной графикой.


Unity - это готовый движок. A мы писали свой. И потом игру еще продавали. Есть разница между написанием задания по полугодичному курсу, и 2-х годичной разработкой игры на продажу.

Цитата:
Предсказание скачков - это machine learning на Python?


Это софт, который автоматически торговал на бирже, на NYSE. Про HFT тогда не знали еще, по паттернам считали
Сами писали, не было тогда никаких библиотек для machine learning
Я об этом и толкую - вы говорите об использовании существующих библиотек, я - о написании этих библиотек. Это совсем разные задачи

Цитата:
а вот большие проекты, distributed systems, big data, когда твоей программой пользуются миллионы людей, и тебе надо учесть все до мелочей - и scaling, и кэши, и multithreading, и network failures, и находить оптимальные алгоритмы, чтобы вся эта махина работала быстро и без ошибок в продакшн - вот это для меня challenge.


Это я понимаю
Но почему вы считаете, что исходники, например, автокада менее сложны, чем то, что вы описали? Там как бы knowledge base не покруче

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 17:10 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
loco писал(а):
Понятно
Программер, который не контрибьютит на stackoverflow, многое теряет. Хотя бы возможность понять, что он не такой умный, каким себя считает
Ну и многие разработчики даже и жавы вполне там обретаются. Вы еще скажите, что у вас на гитхабе проектов нету!

Не контрибьютю, потому что считаю, что там есть более знающие программисты, чем я, которые помогут. Я вообще очень скромная, плюс у меня Impostor syndrome, просто здесь разошлась, потому что не вижу серьезных аргументов, которые могли бы меня стушевать. А вообще в жизни я склонна недооценивать свои способности. Мне обычно повышают самооценку окружающие, особенно когда выделают меня из многих кандидатов и дают джоб офер, а потом начинают со мной советоваться. Это очень круто и вселяет уверенность. Но давать советы на stackoverflow мне кажется еще рано. Сама я туда часто хожу, когда есть вопросы. Споры типа пустых объектов я считаю пустыми, но на многие вопросы там можно получить компетентный ответ. На гитхабе проекты есть, тут можете не волноваться.


1 - вы вполне можете помочь, потому что вопрос может быть не замечен или будет достаточно специфическим, чтоб быстро нашелся отвечающий. Кроме того, даже если кто-то предложит лучшее решение - это тоже плюс, можно научиться новому.
2 - бесполезные споры полезны тем, что там часто речь идет о тонкостях имплементации различных программных концепций, как это сделано в языке/в разных языках и почему, плюс примеры из собственного опыта множества людей. В книгах такое не пишут.
3 - советы дают все кому не лень, даже откровенно дурацкие:) Так что не рано:)
4 - коммьюнити живет за счет контрибуторов, позиция "я лучше в стороне постою" имхо не очень правильная. Раз пользуемся - надо и отдавать

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 15 май 2017, 19:25 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
Я вам говорю, что использование Optiona.isPresent как проверки существования возвращенного обьекта это неправильно, оно не для этого.
Ладно
Не верите мне - смотрите вашу же статью - http://www.oracle.com/technetwork/artic ... 75753.html

You can also use the isPresent() method to find out whether a value is present in an Optional object. In addition, there's a get() method that returns the value contained in the Optional object, if it is present. Otherwise, it throws a NoSuchElementException. The two methods can be combined, as follows, to prevent exceptions:

if(soundcard.isPresent()){
System.out.println(soundcard.get());
}

However, this is not the recommended use of Optional (it's not much of an improvement over nested null checks), and there are more idiomatic alternatives, which we explore below.

Мне ваши предосторожности напоминают одну контору, которая писала на с++, но запрещала программерам использовать арифметику указателей и прямые операции с памятью - потому что это опасно, и не очень опытные разработчики могут налажать:)

Я согласна, что map лучше. Если пишешь код с нуля, то лучше сразу с лямбда. Но я остаюсь при своем мнении - может быть optional is not much of an improvement over nested null checks, но это improvement over returning null однозначно. И объяснять, в чем именно снова я не буду. :lol: По поводу isPresent не для этого - в примере с фильтрами его используют, для этого.

Цитата:


Unity - это готовый движок. A мы писали свой. И потом игру еще продавали. Есть разница между написанием задания по полугодичному курсу, и 2-х годичной разработкой игры на продажу.

По полугодичному курсу? Кто вам такое сказал? Семестр в универе - 3 месяца + 2 недели экзаменов. За эти три месяца - 3 проекта. Первый проект дают где-то через 2-3 недели учебы, так что на каждый проект по 3 недели максимум. Но по поводу разницы спорить не буду, уж мне ли не знать, что такое писать игры - я работаю в игровой индустрии. :lol:

Цитата:
Это софт, который автоматически торговал на бирже, на NYSE. Про HFT тогда не знали еще, по паттернам считали
Сами писали, не было тогда никаких библиотек для machine learning
Я об этом и толкую - вы говорите об использовании существующих библиотек, я - о написании этих библиотек. Это совсем разные задачи

Я не знаю, что такое HFT - то есть вы сами создавали алгоритмы для machine learning? Если да, то круто. Если там machine learning не было, то не сильно впечатляет.

Цитата:
Но почему вы считаете, что исходники, например, автокада менее сложны, чем то, что вы описали? Там как бы knowledge base не покруче

Декстоп приложения изначально проще распределенных систем. Вы в Autodesk работаете? Года 4 назад говорили что-то про радиосигналы, я думала, вы до сих пор там. Я не знаю, какие там исходники, но Autodesk - серьезная компания. Хотя я бы все равно на этом не остановилась. :lol:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 май 2017, 03:03 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
Я согласна, что map лучше. Если пишешь код с нуля, то лучше сразу с лямбда. Но я остаюсь при своем мнении - может быть optional is not much of an improvement over nested null checks, но это improvement over returning null однозначно. И объяснять, в чем именно снова я не буду. :lol: По поводу isPresent не для этого - в примере с фильтрами его используют, для этого.


Конечно, используют, как часть цепочки вызовов. Я сам когда-то для дотнета мейби монаду написал, для себя(тогда встроенных не было еще), и у меня были метод If() и Return(), делавшие что-то похожее
Но подход isPresent() ? get(), then use a real obj он бессмысленный, и прячет истинную суть монад. Вся суть-то именно в chaining of methods без проверки
Ну да ладно

Цитата:
Я не знаю, что такое HFT - то есть вы сами создавали алгоритмы для machine learning? Если да, то круто. Если там machine learning не было, то не сильно впечатляет.


hft - high frequency trading, куча микротранзакций в секунду, которые хоть и мелкие, но в массе дают заметную прибыль. Во там народ с перформансом заморачивается, ужас
Про machine learning - ну, в некотором роде, с т.з. pattern recognition. Есть определенные паттерны, описывающие поведение акций, вот мы их и имплементировали и потом применяли для авто трейдинга
Мне, на самом деле, большие распределенные системы не очень, потому что под них надо инфраструктуру, а это значит, я не смогу написать сам для себя что-то мне интересное, без привлечения каких-то внешних ресурсов. Но может, это я от жизни отстал

Цитата:
Декстоп приложения изначально проще распределенных систем. Вы в Autodesk работаете? Года 4 назад говорили что-то про радиосигналы, я думала, вы до сих пор там. Я не знаю, какие там исходники, но Autodesk - серьезная компания. Хотя я бы все равно на этом не остановилась. :lol:


Нет, не в автодеск. Софт - похожий на разные cad
Почему десктоп проще? Т.е., с точки зрения архитектуры - конечно, у нас только 1 компьютер. Но с т.з. кода - вряд ли, т.к. приложение работает на 1-го юзера, и соответственно, мы менее ограничены по ресурсам, и наворотить можем дохрена, больше, чем на отдельно взятом веб сервере
Про радиосигналы я говорил как про нахождение распределения мощности сигнала внутри помещения, с учетом различных антенн, стен, и проч. Движок, это дело обрабатывающий, по сложности сопоставим с движком, обсчитыващим физику в играх, принципы те же. Если вы считаете, что тот же Havok простой в написании, то это не так:) У нас вон даже патент на наш есть.
Там сплошная математика и физика(теория волновых процессов), бывает весело. Помнится, один из наших phd принес модель по расчету емкости сети, так эта модель при обсчете стандартно падала, т.к. нек промежуточные рассчитываемые величины вылезали за предел double и даже decimal. Пришлось извращаться

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 май 2017, 03:57 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):

hft - high frequency trading, куча микротранзакций в секунду, которые хоть и мелкие, но в массе дают заметную прибыль. Во там народ с перформансом заморачивается, ужас
Про machine learning - ну, в некотором роде, с т.з. pattern recognition. Есть определенные паттерны, описывающие поведение акций, вот мы их и имплементировали и потом применяли для авто трейдинга
Мне, на самом деле, большие распределенные системы не очень, потому что под них надо инфраструктуру, а это значит, я не смогу написать сам для себя что-то мне интересное, без привлечения каких-то внешних ресурсов. Но может, это я от жизни отстал

Я имела в виду алгоритмы, обучающие машину. В pattern recognition они присутствуют.

Я потому и стараюсть найти работу с соответствующей инфраструктурой, потому что десктопы можно писать и дома, а вот комплексные системы - это должна быть крупная компания с большим количеством пользователей. По этой причине в основном меня привлекают top IT разработчики. Чем круче компания, тем интереснее проекты. Это мое мнение. Ну и плюс мне просто нравятся распределенные системы, я хотела ими заниматься еще с универа, как только узнала об их существовании.

Цитата:
Почему десктоп проще? Т.е., с точки зрения архитектуры - конечно, у нас только 1 компьютер. Но с т.з. кода - вряд ли, т.к. приложение работает на 1-го юзера, и соответственно, мы менее ограничены по ресурсам, и наворотить можем дохрена, больше, чем на отдельно взятом веб сервере

Смотря в чем заключается сложность. Если в том, как все наворочено и запутано - то да, можно написать такой десктоп. Я имела в виду алгоритмическую сложность. Как бы все не было запутано, всегда можно разобраться, тут вопрос времени, но есть алгоритмы, когда приходится поломать голову. Например, алгоритмы AI - это сложно. Но они могут быть на любом из серверов распределенных систем, плюс к ним добавляются взаимодействие серверов и сети. Наверное, у меня не так много опыта и я не сталкивалась с действительно сложными десктопными приложениями.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 май 2017, 04:12 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
Я имела в виду алгоритмы, обучающие машину. В pattern recognition они присутствуют.


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

Цитата:
Я потому и стараюсть найти работу с соответствующей инфраструктурой, потому что десктопы можно писать и дома, а вот комплексные системы - это должна быть крупная компания с большим количеством пользователей. По этой причине в основном меня привлекают top IT разработчики. Чем круче компания, тем интереснее проекты. Это мое мнение. Ну и плюс мне просто нравятся распределенные системы, я хотела ими заниматься еще с универа, как только узнала об их существовании.


понимаю

Цитата:
Смотря в чем заключается сложность. Если в том, как все наворочено и запутано - то да, можно написать такой десктоп. Я имела в виду алгоритмическую сложность. Как бы все не было запутано, всегда можно разобраться, тут вопрос времени, но есть алгоритмы, когда приходится поломать голову. Например, алгоритмы AI - это сложно. Но они могут быть на любом из серверов распределенных систем, плюс к ним добавляются взаимодействие серверов и сети. Наверное, у меня не так много опыта и я не сталкивалась с действительно сложными десктопными приложениями.


А я не сталкивался с сложными распределенными:)
десктопные бывают весма сложные(не в смысле запутанные). Самый простой пример - ОС:)
К тому же, в наше время(тм) нету проблемы организовывать распределенную сеть именно десктопных приложений, со всеми этими RESTful, и кучей фреймворков, нынче это просто. Я вот считаю, что это часть будущего, сети а ля пиринговые, без центрального сервера, т.к. телефоны нынче у всех и почти все время онлайн. Потому и полез на андроид

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 май 2017, 07:04 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
что-то пока что не видно особого выхлопа от machine learning
Это я брюзжу, но, с другой стороны, из того что вокруг - больше рулят узкоспециализированные сервисы


Какие выхлопы вы ждете? Они сидят тихой сапой и нас изучают. Google, Facebook. Однажды машины начнут нами управлять, а мы этого не заметим. :lol:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 май 2017, 07:50 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
loco писал(а):
что-то пока что не видно особого выхлопа от machine learning
Это я брюзжу, но, с другой стороны, из того что вокруг - больше рулят узкоспециализированные сервисы


Какие выхлопы вы ждете? Они сидят тихой сапой и нас изучают. Google, Facebook. Однажды машины начнут нами управлять, а мы этого не заметим. :lol:


Я где-то читал, что уже накопили столько данных, что атас(давно ведь копят). Но вот что с ними делать - до сих пор не очень-то и понятно. Поэтому все и надеются так на этот самый machine learning, но пока что особых результатов нет.

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 май 2017, 09:32 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
Ольга_ писал(а):
loco писал(а):
что-то пока что не видно особого выхлопа от machine learning
Это я брюзжу, но, с другой стороны, из того что вокруг - больше рулят узкоспециализированные сервисы


Какие выхлопы вы ждете? Они сидят тихой сапой и нас изучают. Google, Facebook. Однажды машины начнут нами управлять, а мы этого не заметим. :lol:


Я где-то читал, что уже накопили столько данных, что атас(давно ведь копят). Но вот что с ними делать - до сих пор не очень-то и понятно. Поэтому все и надеются так на этот самый machine learning, но пока что особых результатов нет.

Ну как нет - поиск в Гугле быстро понимает, что вы хотите, даже если вы делаете ошибку в запросе, Фейсбук знает, какую рекламу вам показывать - это же все результаты machine learning. Это то, что сразу приходит в голову, наверняка, они еще много какими результатами пользуются. Самоуправляемые гугловские машины уже который год колесят по Маунтейн Вью.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 май 2017, 10:05 
Не в сети
Аватара пользователя

Зарегистрирован: 18 сен 2006, 08:00
Сообщения: 14498
Откуда: Laval
Ольга_ писал(а):
loco писал(а):
Ольга_ писал(а):
loco писал(а):
что-то пока что не видно особого выхлопа от machine learning
Это я брюзжу, но, с другой стороны, из того что вокруг - больше рулят узкоспециализированные сервисы


Какие выхлопы вы ждете? Они сидят тихой сапой и нас изучают. Google, Facebook. Однажды машины начнут нами управлять, а мы этого не заметим. :lol:


Я где-то читал, что уже накопили столько данных, что атас(давно ведь копят). Но вот что с ними делать - до сих пор не очень-то и понятно. Поэтому все и надеются так на этот самый machine learning, но пока что особых результатов нет.

Ну как нет - поиск в Гугле быстро понимает, что вы хотите, даже если вы делаете ошибку в запросе, Фейсбук знает, какую рекламу вам показывать - это же все результаты machine learning. Это то, что сразу приходит в голову, наверняка, они еще много какими результатами пользуются. Самоуправляемые гугловские машины уже который год колесят по Маунтейн Вью.


Говорят, это только малая часть. А что делать с действительно огромными массивами данных - непонятно, особенно как их анализировать. Говорят, показ рекламы - это самое простое
С гуглом, кстати и прочими - а вот voice recognition до сих пор толковый не могут сделать, хотя стараются уже очень долго, лет 15
Про гугловские машины - не знаю, как они работают, ничо сказать не могу

_________________
Whatever happens, we have got
The Maxim Gun, and they have not.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 май 2017, 10:41 
Не в сети

Зарегистрирован: 03 май 2016, 08:14
Сообщения: 396
loco писал(а):
Говорят, это только малая часть. А что делать с действительно огромными массивами данных - непонятно, особенно как их анализировать. Говорят, показ рекламы - это самое простое
С гуглом, кстати и прочими - а вот voice recognition до сих пор толковый не могут сделать, хотя стараются уже очень долго, лет 15
Про гугловские машины - не знаю, как они работают, ничо сказать не могу

Data scientistы знают, что с ними делать, я за это спокойна. :lol:

Гугловский Лексус впервые попал в аварию в прошлом году - говорят, автобус его не пропустил, когда автомобиль возвращался в полосу после объезда препятствия. После этого инцидента подправили софт - научили машину не ожидать, что автобусы будут их пропускать. Welcome to the jungle. :lol:


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 406 ]  На страницу Пред.  1 ... 9, 10, 11, 12, 13, 14  След.

Часовой пояс: UTC − 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB