avva: (Default)
[personal profile] avva
Джава - это не язык, а тенденция. На любом языке можно писать на Джаве. Можно писать на C++ на Джаве и даже на Питоне на Джаве.

Вот так, например, пишут на Джаваскрипте на Джаве. Это из библиотеки Closure Library, одно время главного фреймворка, в котором писали на джаваскрипте в Гугле (сейчас выбор намного больше: есть Angular, Polymer, используют и другие библиотеки, не написанные в Гугле).



Если вы пишете на Джаве, то довольно тяжело не писать на Джаве - сам язык это вроде бы и позволяет, но сложившаяся экосистема библиотек и культурных практик тянет в направлении писать на Джаве на Джаве. Но если вы пишете не на Джаве, то лучше не поддаваться соблазну писать на этом языке на Джаве.

Date: 2017-09-22 02:36 pm (UTC)
From: [identity profile] dims12.livejournal.com
Допустим. Но нельзя ли объяснить, что значит "Java-style" и как надо было написать тот же код без него?

Date: 2017-09-22 03:10 pm (UTC)
From: [identity profile] unibasil.livejournal.com
Это когда вместо того, чтобы в JS просто создать объект, скажем
{
name: "John Silver",
legsCount: 1,
possessions: ["parrot"]
}
типичные джаваисты начинают впадать в абстракционизм и ваять библиотеки фабрик для создания фабрик персон, отягощённых каким-либо имуществом.

Апофеозом этого на моей памяти была ситуация, когда для создания, скажем, простого объекта с координатами (longitude, latitude) была написана функция-конструктор LonLat, которой, по иронии судьбы, в качестве аргумента и передавался уже готовый объект {lon: 131, lat: 43}... ;)

Date: 2017-09-22 03:12 pm (UTC)
From: [identity profile] dims12.livejournal.com
Да, но в примере выше этого нет. Больше похоже на код, сгенерированный автоматическим генератором, чем программистом-джавистом.

Date: 2017-09-22 03:29 pm (UTC)
From: [identity profile] unibasil.livejournal.com
От этого код не перестаёт быть чудовищным с точки зрения духа JS. ;)

Date: 2017-09-23 08:21 pm (UTC)
From: (Anonymous)
Блядь, разные люди 4 раза попросили переписать приведенный OP код "не используя джава-стайл", вы все умничаете, выдумываете не относящиеся к делу примеры, а конкретный код никак не перепишете... Может, или ответите НА КОНКРЕТНЫЙ вопрос, или заткнетесь?

Avva, извините, я знаю, у вас здесь не принято так прямолинейно...

Date: 2017-09-24 04:43 pm (UTC)
From: (Anonymous)
И [livejournal.com profile] unibasil и все читатели, извините за вчерашнее. Сочетание дешевого портвейна с некачественным кокаином вот к такому вот приводит, да...

Date: 2017-09-25 05:41 am (UTC)
From: [identity profile] unibasil.livejournal.com
Непонятно, с чего бы это я должен был переписывать чужой код, приведённый в качестве примера плохого JS стиля автором поста? Тем более по требованию агрессивного анонимуса?

Хотите научиться программировать на JS в духе JS — в Интернете много обучающих ресурсов, you are welcome, как говориться. Я же репетиторством не занимаюсь.

P.S. Кстати сказать, разработка библиотеки OpenLayers 3 (http://openlayers.org/), которой мне по долгу службы пришлось немало пользоваться, начиналась как раз с Closure и GWT, но в последующем значительное количество времени и усилий разработчиков было посвящено рефакторингу с целью избавиться от GWT.

Date: 2017-09-25 06:19 am (UTC)
From: (Anonymous)
С того вы должны переписывать чужой код, что влезли умничать-отвечать на вопрос "ничего не понял, а как надо"? В общем, все ясно.

Date: 2017-09-22 08:25 pm (UTC)
livelight: (lightning)
From: [personal profile] livelight
Вам какие-то совсем неправильные и не-джависты попадались.
Неправильные джависты сделали бы на джаваскрипте AOP. Oh, wait... в JS это ведь называется "прототипы"!
Правильные джависты ничего такого делать не стали бы, но вот с наследованием или делегированием порезвились бы.

Date: 2017-09-23 08:59 am (UTC)
From: [identity profile] boffin.livejournal.com
Я просто оставлю это тут https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition

January 2026

S M T W T F S
    1 2 3
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 3rd, 2026 03:55 pm
Powered by Dreamwidth Studios