Сохранен 502
https://2ch.hk/pr/res/911262.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

JavaScript thread #74

 Perekoter !JLHGEtxGTk 13/01/17 Птн 15:23:33 #1 №911262 
14843102137300.jpg
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многими другими.

Часто задаваемые вопросы:
https://github.com/xxxwww/js-thread/blob/master/Wiki/faq.md

Список материалов для изучения:
https://github.com/xxxwww/js-thread/blob/master/Wiki/learn.md

Список инструментов и направления JS-разработки:
https://github.com/xxxwww/js-thread/blob/master/Wiki/tools.md

Конфа /pr/ в Slack:
https://invite-me-to-2chpr.herokuapp.com/

JS-конфа в телеграме:
https://telegram.me/jsthread

НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
Аноним 13/01/17 Птн 15:24:44 #2 №911264 
Тотальный бамп в тематике, лучшему в мире языку программирования высокого уровня.
PEREKOT Perekoter !JLHGEtxGTk 13/01/17 Птн 15:25:34 #3 №911265 
Прошлый тред >>904377 (OP)
Аноним 13/01/17 Птн 15:31:50 #4 №911269 
14843107107980.jpg
Блять. Пидорасы. Мне бомбит от всех этих ваших ecmascript, es20xx и бабелей.

Хипстеры в узеньких штанишках там совсем охренели?

Сделали классы, все дружно бросились их использовать, но приватные методы забыли.
Как вообще сделать приватный метод класса в этом вашем яваскрипте?

Запилили декораторы
@хуй
пизда() {}

но обосрались, декараторы работают только с классами. нельзя повесить декоратор просто на функцию или объект.

хипстеры дружно бросились использовать декораторы и команда babel берет их и выпиливает нахуй из проекта, потому что они вообще были просто шуткой, питушки так и не решили нужны ли они вообще?

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

стрелочные функции
поменял function на () => отвалилось все нахер

как вообще блять так жить?

хочется уже перейти на нормальный язык, без этих ебанутых плясок в яме с говном. жили же как-то раньше
Аноним 13/01/17 Птн 15:42:33 #5 №911274 
>>911269
> Как вообще сделать приватный метод класса в этом вашем яваскрипте?
Как и питоне. Какие тебе вообще приватные методы в ооп языках?
Аноним 13/01/17 Птн 15:43:00 #6 №911275 
>>911274
> динамически типизируемых языках
фикс
Аноним 13/01/17 Птн 15:57:12 #7 №911276 
>>911274 в питоне есть приватные методы. В пидорском es2015-2016 нет

>>911275 можно подумать динамическая типизация отменяет абстракцию ооп

class в javascript это просто сахар. что собственно мешало добавить private методы в этот сахар? учитывая, что эти слова уже зарезервированы, используй не хочу
Аноним 13/01/17 Птн 16:39:38 #8 №911299 
>>911269
так es5 никто не отменял же?
Аноним 13/01/17 Птн 18:05:08 #9 №911342 
>>911269
>поменял function на () => отвалилось все нахер
Блядь, ты охуенен, анон. Честно, без иронии.
Заведи бложик где-нибудь на Медиуме и пиши про ЖС. Обещаю подписаться.

>Как вообще сделать приватный метод класса в этом вашем яваскрипте?
Сначала приведи аргументы в пользу наличия приватных методов в интерпретируемых ЯП.
Тебе самому разбираться, где паблик, а где прайвет?
Стандарт де-факто помечать имена приватных методов а-ля _myPrivateMeth() {}
Если не хочешь выбрасывать методы в глобал скоуп, юзай WeakMap'ы, приемы навроде Closuring и т.д. Простор же для фантазии, а тебе обязательно надо было заморочиться вокруг ES6 Classes.

>Запилили декораторы
>но обосрались, декараторы работают только с классами
Ну тут-то ты перегнул палку, бро. Декораторы можно вешать на методы класса.
Специально для тебя русек подогнали для описания декораторов: https://habrahabr.ru/post/277021/
Аноним 13/01/17 Птн 18:13:24 #10 №911344 
>>911274
>>911275
> Какие тебе вообще приватные методы в ооп языках?
> динамически типизируемых языках

Спецификаторы видимости важны для инкапсуляции, чтобы отделить внешний интерфейс от внутренней реализации. Типизация здесь вообще не при чём.

>>911269
> Сделали классы, все дружно бросились их использовать, но приватные методы забыли.
Ну называй приватный методы с нижнего подчёркавания, нормальный программист их извне вызывать не будет. Вот наличие тайп-хинтов хотя бы как в PHP очень сильно помогло бы. Но вот есть ребята, которые не только ноют, а пытаются что-то изменить: https://flowtype.org/

> Flow can catch common bugs in JavaScript programs before they run, including:
> silent type conversions,
> null dereferences,
> and the dreaded undefined is not a function.

Можешь и ты присоединиться, у них там около тысячи issues на гитхабе.
Аноним 13/01/17 Птн 18:29:41 #11 №911350 
14843213818060.jpg
14843213818091.jpg
14843213818152.jpg
Парни, помогите, как сделать эффект медленного появления подгружаемого содержимого?
Если так сразу не скажешь, вот пример:
https://cloud.mail.ru/public/Cvrs/59QuUGxGT
Аноним 13/01/17 Птн 18:30:08 #12 №911351 
>>911342
> Если не хочешь выбрасывать методы в глобал скоуп, юзай WeakMap'ы, приемы навроде Closuring и т.д.
Это ты сейчас преимущества или что перечислил? Почему бы эти костыли не заменить на поддержку приватных полей из коробки, вместо того чтобы фантазировать как еще можно это говно довести до состояния здорового яп.
Аноним 13/01/17 Птн 18:58:24 #13 №911384 
Антонио, помогите пожалуйста.
Есть файл icalendar или как-то так.
Можно ли как то выудить из него информацию и использовать ее жс? Переконвертировать его в json может, или какая то библиотека есть для работы с такими файлами? Как вообще делают в подобных ситуациях?
Аноним 13/01/17 Птн 18:59:17 #14 №911385 
Аноны, это M$ вкрай охуел или я что-то не так делаю?
IE11, в Edge-режиме, выдаёт такой userAgent:
>"Mozilla/5.0 (Windows NT 6.1; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; Tablet PC 2.0; rv:11.0) like Gecko"
Они там пизданулись? Эта хуйня под FF косит.

Как детектировать любой браузер от MS?
Аноним 13/01/17 Птн 19:01:31 #15 №911389 
>>911385
>Trident/7.0;
Аноним 13/01/17 Птн 19:04:58 #16 №911394 
>>911389
В IE11, в режиме эмуляции IE9, тоже есть
>Trident/7.0;
. Это один из тех случаев, где эмуляция не помогает и нужен реальный старый IE?
Аноним 13/01/17 Птн 19:06:24 #17 №911397 
>>911384
В ноде есть fs.readFile(). В браузере нельзя получить доступ к внешним файлам c помощью жс.
Аноним 13/01/17 Птн 19:07:17 #18 №911398 
>>911394
browserstack.com
Аноним 13/01/17 Птн 19:07:47 #19 №911399 
>>911394
Обрати внимание, указан номер ревизии:
> rv:11.0
Аноним 13/01/17 Птн 19:09:23 #20 №911400 
>>911398
>>911399
Спасибо огромное, лучей добра ^_^
Аноним 13/01/17 Птн 19:17:53 #21 №911402 
14843242733860.jpg
>>911342
>Сначала приведи аргументы в пользу наличия приватных методов в интерпретируемых ЯП.

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

Вот я сделал на англуяре контроллер используя class,
angalar.module('analApp', []).controller(class {
constructor(privateService) {
this.privateService = privateService;
}
ebalJs() {}
});

некоторые методы приватные, потому что не должны вызываться из шаблона (view). Однако в js я могу обратиться к этим методам и даже сервисы, которые заинджектил, вызвать, через {{ $ctrl.privateService }}

Кто скажет: нахуй так жить?
Однако у нас на проекте ребята в узких штанишках именно так и живут.

>Стандарт де-факто помечать имена приватных методов а-ля _myPrivateMeth() {}

Вот сейчас открыл arbnb конвеншин, они пишут: не используйте _ перед именами, если хотите, что-то скрыть, скрывайте. Потому что _ не работает и выглядит убого.

>Ну тут-то ты перегнул палку, бро. Декораторы можно вешать на методы класса.

имел ввиду, что никуда кроме класса и метода класса ты их не повесишь

В той же статье:
@mydecorator
def myfunc():
pass

Вау!!! Мы сделали декораторы, как в пистоне, дивитесь, хлопцы

Однако аналогичный пример на js

@mydecorator
function() {
}

работать не будет
Аноним 13/01/17 Птн 19:26:52 #22 №911408 
14843248130100.jpg
>>911344
>Но вот есть ребята, которые не только ноют, а пытаются что-то изменить: https://flowtype.org/

Это скорее попытка сделать яваскрипт строго типизированным. Интересно, почему команда ангуляра второго выбрала основным языком TypeScript, а не flow?

В тайпскрпте есть private, кстати. Вот только зачем использовать TypeScript, когда можно использовать java? Если писать на нем соблюдая все типы, то нужна будет тяжеловесная ide.
Аноним 13/01/17 Птн 19:28:38 #23 №911409 
>>911397
Спасибо за подсказку, буду думать.
Аноним 13/01/17 Птн 19:32:24 #24 №911412 
>Вот только зачем использовать TypeScript, когда можно использовать java?
А еще можно своими кокошками жонглировать, попердывая в кресло.
Ты от проблем привык фрустрировать, или все же решать их?

Если нужны приватные методы, обмажься паттерном "revealing module":
https://addyosmani.com/resources/essentialjsdesignpatterns/book/#revealingmodulepatternjavascript
Аноним 13/01/17 Птн 19:47:56 #25 №911427 
>>911412 получается, что если ты хочешь приватные методы, то использовать новые фишки нельзя
Аноним 13/01/17 Птн 19:52:59 #26 №911436 
>>911427
>получается, что если ты хочешь приватные методы, то использовать новые фишки нельзя
Риторический вопрос: ты сильно расстроился, когда узнал, что к fat arrow функциям нельзя биндить контекст? Это тоже ограничение новых фишек?
Аноним 13/01/17 Птн 20:05:11 #27 №911449 
>>911436 я даже не сильно обрадовался, когда они появились
Аноним 13/01/17 Птн 20:20:10 #28 №911460 
14843280109830.png
>>911313
Аноним 13/01/17 Птн 23:49:57 #29 №911579 
Запилил на express.js сайтик, который отображает некоторые мои файлики на компе, по аналогии с каталогами в винде, запустил ноду на компе, сайтик стал виден во всей локалке, т.е. дома на телефоне и планшете. Теперь могу дрочить не вставая с дивана. Завидуйте.
Аноним 13/01/17 Птн 23:53:51 #30 №911585 
>>911579
чем лучше расшаренной папки или python -m http.server?
Аноним 14/01/17 Суб 00:36:15 #31 №911602 
>>911579
> отображает некоторые мои файлики на компе
> express.js
Ради такого фреймворк жирнючий ставить...
То, что ты описал, уместится в один index.php на 5-6 строк.
Аноним 14/01/17 Суб 01:02:04 #32 №911615 
>>911408
>яваскрипт
Ухх, блять

>Интересно, почему команда ангуляра второго выбрала основным языком TypeScript, а не flow?
Почему команда говнуляра не выбрала dart?

Ты заебал уже хуйню пороть, маяковский. В js нет классового наследования, смирись. Здесь пишут функции, кооторые просто не экспортируют и все - нахуй не упали прайват методы. Используй java, раз так бомбит. Или костыли типа typescript/flowtype/dart
Аноним 14/01/17 Суб 01:04:51 #33 №911616 
>>911579
ты охуенен, анон
Аноним 14/01/17 Суб 01:38:05 #34 №911628 
Аноны, почему для элементов, который запилины для стилизации шрифтов, нет конструкторов?
Не существует HTMLBoldElement для <b> - он наследует напрямую от HTMLElement. И для всяких <i> и прочих <em> тоже.
Аноним 14/01/17 Суб 02:02:58 #35 №911638 
>>911269
>Как вообще сделать приватный метод класса в этом вашем яваскрипте?

как там в 0х, что тебе мешает юзать модули?

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

внезапно на стороне клиента, это так и так бесполезно, в чем суть приватных свойств, если они видны в консольке бровзера в жс файле?
Аноним 14/01/17 Суб 02:07:22 #36 №911641 
>>911460
жаль не заскринил про че там, думал опять ебаный js свои финты крутит. Так-то в браузере все норм работает, там правда среда не совсем браузер обычный. Ну да похуй
Аноним 14/01/17 Суб 02:15:07 #37 №911644 
>>911641
>ебаный js свои финты крутит
В стапроцентах слачаев, это не js крутит финты, а криворукость чья-то.
Аноним 14/01/17 Суб 02:40:11 #38 №911654 
>>911638
>внезапно на стороне клиента, это так и так бесполезно, в чем суть приватных свойств, если они видны в консольке бровзера в жс файле?
Что ты несешь?
Как ты собираешься добраться до приватных свойств из консольки спрятанных в викмапе, которая в замыкании?

Я не о том, что это годно. Все привычки классоебво в прототипном программировании не нужны (да-да, и конструкция класс в js не нужна, уебки).

Но то, что в js нельзя ничего спрятать от пользователя, так чтобы он до этого не добрался - чушь.
Аноним 14/01/17 Суб 02:44:40 #39 №911655 
14843510803310.png
>>911269
>>911274
>>911276
>>911344
>>911402
>>911412
>>911427
>>911436
>>911654

>приватные методы

поясните тупому, зачем на стороне клиента нужны приватные методы, когда все ЖС файлы приходят по сылкам и/или видны в консольке бровзера?

пик рандом
Аноним 14/01/17 Суб 02:45:57 #40 №911656 
>>911276
> в питоне есть приватные методы
нихуя, в питоне абсолютная рефлексия, там есть только pep8 на приватные и защищенные (protected) методы, а также магические методы и все. В js аналогично.
Аноним 14/01/17 Суб 02:51:53 #41 №911657 
>>911350
> эффект медленного появления
Играйся с прозрачностью, где 100% растянуты на нужный тебе интервал.
>>911402
> везде где надо скрывать реализацию от шаловливых ручек макак
Кек, тогда и браузеры заставляю этого стандарта придерживаться, чтобы базовые вещи типо xhr, array.prototype и прочее никто не мог переопределить.

Алзо поясните за react-way. Можно ли в реакт роутере использовать не один компонент, а несколько?
Аноним 14/01/17 Суб 02:57:38 #42 №911659 
>>911655
Приватные методы как и классы вообще просят классоебы, которые не могут не пукнув перекатиться из КООП в ПООП. У них шаблон рвётся, так же как у статикодебилов, не способных писать код, так, чтобы их тайпчеккер по рукам все рвемя не ебашил.
Аноним 14/01/17 Суб 02:59:31 #43 №911661 
14843519713340.png
Аноним 14/01/17 Суб 03:01:45 #44 №911665 
14843521051700.png
>>911661
Аноним 14/01/17 Суб 05:04:14 #45 №911720 
>>911661
Пиздец нахуй. Что это за ебатень?
Аноним 14/01/17 Суб 05:07:43 #46 №911721 
>>911659
А как по мне, приватные метода - хорошая альтернатива. Чтобы пользователь, такой как я, лол, который если и захочет залезть - то не сможет. Если-бы была поддержка в IE9 и е.п. - давно-бы перекатился на новые стандарты. Но приватные методы ещё на стадии черновика, насколько я помню.
Аноним 14/01/17 Суб 07:15:01 #47 №911731 
>>911721
>который если и захочет залезть - то не сможет.
Сможет. У него же весь код под рукой. Он возьмёт и сделает нужный метод публичным, поссав вам на литсо.
Аноним 14/01/17 Суб 08:04:49 #48 №911742 
>>911661
>}))((function(){{ ... })))
Почему яваскрипт такой брейнфак?
Аноним 14/01/17 Суб 10:28:19 #49 №911770 
>>911742
Потому что у тебя маняфантазии и преувелечения скобочек.
Аноним 14/01/17 Суб 10:31:23 #50 №911774 
>>911615
>В js нет классового наследования, смирись.

Но ведь оно есть и его можно было эмулировать и без введения фальшивых классов в стандарт

Сейчас пишу так:

function private() {
}

class Pizda {
jopa() {
private.bind(this)();
}
}

убого, но хоть какое-то решение
Аноним 14/01/17 Суб 10:32:09 #51 №911775 
>>911721
Для этого есть замыкания.
Аноним 14/01/17 Суб 10:47:15 #52 №911783 
>>911654 поясни про викмап, как в нем прятать приватные свойства?

>>911655 допустим я делаю перделку-виджет, который клиент сможет разместить у себя на сайте сославшись на мой js фаил. и экспортирую api
widget.puk(); и не хочу, чтобы внутренний метод widget._perd(); был доступен клиенту.

все это можно спрятать в замыкания, однако js обезьяны вообще не понимают зачем что-то прятать, они запилили классы без праветов, потому что не осилили прототипы и замыкания.

>>911659 да. Рвется шабло, что есть класс, а скрыть метод я не могу. Зачем спрашивается нужны были классы?

>>911731 это уже будут его личные проблемы, потому что мы как бы предупреждали
Аноним 14/01/17 Суб 10:52:53 #53 №911786 
>>911783
>поясни про викмап
>>911661
Аноним 14/01/17 Суб 10:53:25 #54 №911787 
>>911783
>допустим я делаю перделку-виджет
ЗАМЫКАНИЯ
Аноним 14/01/17 Суб 10:55:48 #55 №911789 
>>911783
>Зачем спрашивается нужны были классы?
Они всегда были. Ввиде конструктора и прототипа.
class {} Это просто сахар.

Вместе с их введением ввели и полезную вещи, как наследование от встроенных классов.
Аноним 14/01/17 Суб 10:56:38 #56 №911791 
>>911783
>это уже будут его личные проблемы, потому что мы как бы предупреждали
Тогда достаточно использовать символы.
Аноним 14/01/17 Суб 11:10:32 #57 №911802 
>>911783
>это уже будут его личные проблемы
В смысле проблемы? Он же намеренно хочет покопаться, а не случайно там что-то сломает.

>потому что мы как бы предупреждали
подчёркиванием предупредите и всё. Нахуя усложнять жизнь и себе, и другим-то, я никак не пойму?
Аноним 14/01/17 Суб 11:16:30 #58 №911806 
>>911783
>Зачем спрашивается нужны были классы?
А что, единственное предназначение классов это приватные методы? Даже у инкапсуляции две части: сокрытие данных и группировка данных с методами.

>зачем что-то прятать
А ты можешь внятно объяснить, зачем? Толкьо без "не хочу, чтобы они имели доступ", желательно.
Аноним 14/01/17 Суб 11:31:55 #59 №911817 
>>911802
>В смысле проблемы? Он же намеренно хочет покопаться, а не случайно там что-то сломает.

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

>подчёркиванием предупредите и всё. Нахуя усложнять жизнь и себе, и другим-то, я никак не пойму?

лол. Вообще сокрытие методов и свойств должно упрощать жизнь.

>>911789 ну ничего же не мешало добавить в этот сахар приватные методы. а так в этом сахаре нет смысла, да и какое же это сахар, когда нужно везде писать this. Даже в java такого маразма нет.

>>911806
> объясни мне принципы OOP
> яваскрипт тред
Аноним 14/01/17 Суб 11:34:11 #60 №911820 
>>911783
>допустим я делаю перделку-виджет, который клиент сможет разместить у себя на сайте сославшись на мой js фаил. и экспортирую api
widget.puk(); и не хочу, чтобы внутренний метод widget._perd(); был доступен клиенту.

>>911787 дело говорит: https://jsfiddle.net/ee9woaLg/
Аноним 14/01/17 Суб 11:39:17 #61 №911825 
>>911820
>>>911787 дело говорит: https://jsfiddle.net/ee9woaLg/
Нет, не правильно.
Так у тебя в каждом инстансе инстансы собственных приватных методов, которые ты не сможешь использовать из других методов и вообще поебота какая-то.

Замыкать нужно сам класс, а не методы в конструкторе.

У тебя хуевое какое-то представление работы js
Аноним 14/01/17 Суб 11:41:38 #62 №911829 
>>911817
>Даже в java такого маразма нет.
Это совершенно разные языки.
Люди не умеющие переключаться между абстракциями и ноющих о том, что в каком-то языке что-то не так как они привыкли, обычно идиоты
Аноним 14/01/17 Суб 11:47:53 #63 №911836 
>>911820>>911787 спасибо, кэп.

Я как бы говорю про новомодные классы из es2015, а не про старый синтаксис
Аноним 14/01/17 Суб 11:49:54 #64 №911840 
>>911825 человек спрашивал зачем вообще нужно скрывать внутренние методы и свойства.

Это конечно все замечательно, но как ты это сделаешь используя class и всю мощь es2016
Аноним 14/01/17 Суб 11:57:40 #65 №911847 
14843842602830.jpg
Кстати, отсос тайпскритп засчитан

http://www.typescriptlang.org/play/#src=class%20Widget%20%7B%0D%0A%20%20%20%20private%20pok%20%3D%20'pok'%3B%0D%0A%20%20%20%20puk()%20%7B%0D%0A%20%20%20%20%20%20%20%20this.perd()%3B%0D%0A%20%20%20%20%7D%0D%0A%0D%0A%20%20%20%20private%20perd()%20%7B%0D%0A%20%20%20%20%20%20%20%20alert('puk')%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Alet%20w%20%3D%20new%20Widget()%3B%0D%0A%0D%0Aw.perd()%3B
Аноним 14/01/17 Суб 12:01:53 #66 №911851 
>>911847

>Private visibility is a design-time construct; it is enforced during static type checking but does not imply any runtime enforcement. ... TypeScript enforces encapsulation of implementation in classes at design time (by restricting use of private members), but cannot enforce encapsulation at runtime because all object properties are accessible at runtime. Future versions of JavaScript may provide private names which would enable runtime enforcement of private members
Аноним 14/01/17 Суб 12:05:59 #67 №911855 
>>911851
а если бы тайп скрипт генерил код так?

https://jsfiddle.net/Lkf7yqsq/

Впрочем с protected бы обсрались, но все равно лучше бы было
Аноним 14/01/17 Суб 12:14:28 #68 №911863 
>>911851
>Future versions of JavaScript may provide private names

es2027 ееее!
Аноним 14/01/17 Суб 12:35:08 #69 №911882 
>>911657
> Алзо поясните за react-way. Можно ли в реакт роутере использовать не один компонент, а несколько?
Бамп вопросу
Аноним 14/01/17 Суб 12:54:22 #70 №911902 
>>911882
Да, можно.
https://github.com/ReactTraining/react-router/blob/master/examples/sidebar/app.js
Аноним 14/01/17 Суб 12:55:52 #71 №911906 
>>911882
>>911902
Так же есть документация для роутера 4 (альфа) https://react-router.now.sh/Match
Аноним 14/01/17 Суб 12:57:07 #72 №911909 
Поясните за vue js. Клевая ли штука, и нужно ли учить всякие вебпаки и т.п для того, чтобы начать на ней писать что-то простое?
Аноним 14/01/17 Суб 13:04:43 #73 №911917 
>>911909
Вполне годная. Но у реакта больше материалов.
Нет, ты начинаешь делать приложение и когда у тебя возникает потребность в какой-то технологии - ты начинаешь ее использовать. Я уже год пишу на реакте, но не знаю вебпак идеально.
Найди awesome vue на github - там будут примеры приложений и ссылки на технологии, которые тебе могут понадобиться.
Аноним 14/01/17 Суб 13:25:56 #74 №911929 
>>911840
>но как ты это сделаешь используя class
Разницу между твои и этим примером чувствуешь?
https://jsfiddle.net/kq6dzb4f/
Аноним 14/01/17 Суб 13:39:58 #75 №911938 
>>911929
Пример не он писал, а я скопипиздил и изменил имена функций. И да, у тебя паттерн "модуль" - я это понимаю, просто не заморачивался с фиддлом, а нарисовал общее понятие. Скопипиздил пример с кантора.
Аноним 14/01/17 Суб 15:37:11 #76 №912035 
>>911817
>Инкапсуляция это ключевой принцип ООП, вообще-то.
Инкапсуляция это не только методы прятать, я же написал.

>Вообще сокрытие методов и свойств должно упрощать жизнь.
Так чем? Ты можешь не ссылаться на какие-то там принципы чего-то, деды так делали, а взять и пояснить по хардкору, зачем тебе это делать, кроме как скрыть от шаловливых ручек? Ведь последнее, как уже гвоорилось, с js не сделать, всегда есть относительно лёгкий способ всё расковырять.
Аноним 14/01/17 Суб 16:02:51 #77 №912054 
>>911855
ТайпСкрипт, Дарт, ФлоуТайп нахуй не нужны. Единственный их плюс - это облегчить старт для всяких мракобесов, которые пришли из Java, например, и не могут переучиться. КофеСкрипт тоже хуета.

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

Поэтому не следует быть как Мелкомягкие и заставлять писать разработчиков на своей недоподелке.

Нахуй говнуляр 2 и туда же тайпскрипт.
Вотэт у меня бомбануло, охуеть

Аноним 14/01/17 Суб 16:06:22 #78 №912057 
>>912054
> не следует быть как Мелкомягкие и заставлять писать разработчиков на своей недоподелке.
Ну да, именно поэтому ангуляр 2 через пару лет снова станет промышленным стандартом, на котором будут пилить толстые spa, как это было с первым.
Аноним 14/01/17 Суб 16:10:01 #79 №912060 
>>912057

> ангуляр 2 через пару лет снова станет промышленным стандартом

>Angular 3 will be released in March 2017
Аноним 14/01/17 Суб 16:14:08 #80 №912062 
>>912060
Там леченние проблем с обратной совместимостью. Когда пилили ангулар2, над совместимостью между версиями не подумали. Сейчас во 2-й версии api устаканится и можно будет все обновлять куда проще.
Аноним 14/01/17 Суб 16:14:56 #81 №912064 
>>912060
Короче нафига я пишу, читни лучше сам
https://toddmotto.com/please-stop-worrying-about-angular-3
Аноним 14/01/17 Суб 16:17:38 #82 №912065 
>>912062
>>912064

Ну норм значит.
Аноним 14/01/17 Суб 16:29:01 #83 №912078 
>>912065
Энивей ангулар2 это уже тяжелая махина на уровне эмбер или дерби, которые для простых приложений уже не годятся из-за оверхеда всяких фич "из-коробки".
Аноним 14/01/17 Суб 19:32:04 #84 №912173 
>>911397
Ты ща просто взял и ajax на ноль просто помножил
Аноним 14/01/17 Суб 21:08:13 #85 №912246 
>>912035
> объясни зачем писать красивый и правильный код, когда можно писать говнокод

пофиксил
Аноним 14/01/17 Суб 21:09:52 #86 №912249 
>>912246
У тебя просто окр.
Аноним 14/01/17 Суб 21:28:46 #87 №912266 
>>912054
> Единственный их плюс - это облегчить старт для всяких мракобесов, которые пришли из Java, например, и не могут переучиться.
А ты писал на Java/C# большие проекты?

>>911659
> У них шаблон рвётся, так же как у статикодебилов, не способных писать код, так, чтобы их тайпчеккер по рукам все рвемя не ебашил.
Но ведь это удобно, чем больше проект - тем это полезнее. Вот, послушай чувака, у него явно и опыта и мозгов побольше, чем у тебя: https://www.youtube.com/watch?v=Ui8YfxzjaTY
Аноним 14/01/17 Суб 21:41:02 #88 №912271 
>>912266
че там на видео, питонопетух обсирает жсопетухов?
Аноним 14/01/17 Суб 21:43:29 #89 №912272 
>>912271
Мужик обстоятельно рассказывает об удобстве TypeScript и преимуществах строгой типизации в общем.
Аноним 14/01/17 Суб 21:46:09 #90 №912275 
>>912249 у меня перфекционизм и в этом нет ничего плохого. Может в яваскрипт сообществе поощряется написание говнокода, но в java мире за это бьют по рукам
Аноним 14/01/17 Суб 21:46:51 #91 №912276 
>>912275
> но в java мире за это бьют по рукам
Лол, чет на всю квартиру проиграл
Аноним 14/01/17 Суб 21:48:01 #92 №912278 
дело говорит >>912266

Никто из здешник большой проект никогда не писал видимо. Но тут и правда удобней будет яву использовать я фанат gwt
Аноним 14/01/17 Суб 21:48:15 #93 №912280 
>>912276
Тоже проиграл с подливой, соседи ментов вызвали, а то шумно очень. Еще мчс приехали, я подливой пол дома затопил.
Аноним 14/01/17 Суб 21:52:25 #94 №912281 
>>912280>>912276 с чего проигнал? расскажи, посмеемся вместе
Аноним 14/01/17 Суб 21:55:47 #95 №912284 
14844201478980.png
>>912246
> правильный код
> красивый код
> джава
Аноним 14/01/17 Суб 21:57:29 #96 №912285 
>>912284 Да. Что не так? Назови хоть одну книгу о том, как красиво писать код на javascript (не код конвенцию)
Аноним 14/01/17 Суб 21:59:17 #97 №912286 
>>912285
Eloquent JS?
Аноним 14/01/17 Суб 22:04:45 #98 №912292 
>>912286 зугуглил, полистал и проиграл.
Аноним 14/01/17 Суб 22:26:04 #99 №912300 
>>912281
С того, что джава макака будет рассказывать, насколько этот язык позволяет писать хороший код. Обычно это такой же ад, как и js. Упрощает понимание как раз документирование в нужных местах и тесты. Неочевиднаю логику любой язык позволяет настругать.

>>912285
> как красиво писать код на javascript
Посмотри исходники 2 ангулара, экспресс.
Книги ему какие-то подавай.
Аноним 14/01/17 Суб 23:03:17 #100 №912322 
>>912300
>С того, что джава макака будет рассказывать, насколько этот язык позволяет писать хороший код

ты удивишься, но действительно позволяет. Существует огромное количество литературы, как писать хороший код на яве. Многие передовые практики в программировании вышли из явы. Даже этот ваш тайпскрипт не более чем попытка запилить яву. Да даже яваскрипт это яваскрипт.
Аноним 14/01/17 Суб 23:04:41 #101 №912324 
>>912322
С последнего утверждения улыбка на поллица уже была.
Аноним 14/01/17 Суб 23:45:28 #102 №912333 
В общем, я тот, кто написал вот это http://pastebin.com/nhedaiHx Как можно заметить, функция isPair реализована не очень хорошо. Теперь мне понадобилось определять не только пары, но ещё и другие вещи, причём многим я не могу в constructor засунуть функцию, потому что они хоть и производятся одной функцией, но всё равно имеют разные типы. Собственно, мне интересно 1) как их отличать друг от друга, и 2) ничего же страшного не случится, если я в constructor затолкаю строку? Ну, кроме того, что это "плохой стиль".
Аноним 15/01/17 Вск 00:31:16 #103 №912353 
>>912322
>Даже этот ваш тайпскрипт не более чем попытка запилить яву
Нет, это попытка запилить С#. А знаешь в чём разница? В тайпскрипте есть дженерики. В жаве их нет.
Аноним 15/01/17 Вск 00:39:46 #104 №912359 
>>912353
>Нет, это попытка запилить С#

начнем, с того, что C# это попытка сделать яву с кучей говна и сахора

>В тайпскрипте есть дженерики. В жаве их нет.

ха ха проиграл
https://docs.oracle.com/javase/tutorial/java/generics/types.html
Аноним 15/01/17 Вск 06:45:13 #105 №912475 
>>911731
Ты ебанутый?
Как он сделает публичным метод, к котором даже не имеет доступа даже через Консоль? Вообще, как он изменит тип метода?
Ты ебанутый.
Аноним 15/01/17 Вск 06:45:55 #106 №912477 
>>911775
Функциональный стиль ООП - это пиздец и плохой код, как по мне.
Аноним 15/01/17 Вск 08:24:45 #107 №912480 
>>912266
>А ты писал на Java/C# большие проекты?
Нет
Аноним 15/01/17 Вск 10:58:02 #108 №912506 
>>912054
Если хочешь один раз чему-то научится и работаьь следующие 50 лет, ничего не изучая, не читая и не гугля, то иди дворником работать. ЯП и решения на них будут постоянно развиваться, не смотря на все твое желание оставаться клавиатурной макакой
Аноним 15/01/17 Вск 11:06:10 #109 №912511 
>>912475
ПРОСТО возьмёт и изменит. Скачает твой код, подправит, и будет использовать свою версию. Или скопирует нужную часть и через плагин добавит публичный метод, который выполняет тот же код, что и приватный.

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

>>912322
Красиво позволяет писать, наверное, любой язык. Однако, если требуется
>огромное количество литературы, как писать хороший код
значит есть вероятность, что некрасивый код оно писать позволяет гораздо проще, чем другие языки, на которые столько литературы не требуется, разве нет? Ведь не одни же джависты какие-то особенные, что хотят красивый код писать, все хотят.
Аноним 15/01/17 Вск 11:06:29 #110 №912512 
>>912506
>научиться
Аноним 15/01/17 Вск 11:08:07 #111 №912515 
>>911783
>widget.puk(); и не хочу, чтобы внутренний метод widget._perd(); был доступен клиенту

лол, что клиенту мешает сделать релейт, после того как он посмотрит в твой жс файл по ссылке?

widget.prototype._perd = function() {...};
Аноним 15/01/17 Вск 11:12:27 #112 №912517 
>>912515
А что мешает тебе купить машину и оторвать в ней тормоза?
Аноним 15/01/17 Вск 11:30:55 #113 №912520 
>>912517

в webassebly обещают байт код для ЖС, можно будет потом прятать весь код в него. только вот нахуя это всё, когда кругом опенсурс во все поля. хотя...
Аноним 15/01/17 Вск 11:31:37 #114 №912521 
>>912520
*webassembly
Аноним 15/01/17 Вск 12:00:31 #115 №912529 
>>912511
>ПРОСТО возьмёт и изменит. Скачает твой код, подправит, и будет использовать свою версию. Или скопирует нужную часть и через плагин добавит публичный метод, который выполняет тот же код, что и приватный.

про объясни, зачем это делать?

>значит есть вероятность, что некрасивый код оно писать позволяет гораздо проще, чем другие языки, на которые столько литературы не требуется, разве нет?

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

>>912515 можно, но зачем? я просто скрыл от клиента все не нужное и весь информационный шум, оставив только нужные методы

Аноним 15/01/17 Вск 12:15:10 #116 №912530 
>>911262 (OP)
0
голос «против»
избранное


Делаю веб-приложение с расчётом на длительную перспективу. Решил изначально использовать Angular 2, но мне не понравилось, что он слишком массивный, создаёт много файлов и директорий, а так-же устанавливает много модулей, которые мне не нужны (а нужны исключительно для работы ангуляра 2), тем самым, вовсе не вписывается в общую арххитектуру приложения. А за основу своего приложения, брать Angular 2 я не буду, так как его роль далеко не первостепенна. Но я вот вспомнил, что первый ангуляр просто подключается ссылочкой и работает сразу же. Но возникает вопрос, а Ангуляр 1, это вообще хороший продукт, а то я начитался об огромных преимуществах Ангуляра 2, над своим младшим братом, что возникает вопрос, стоит ли вообще использовать Ангуляр1? Или лучше обойтись православным JQuery и не морочить себе голову? Или быть может есть какой-то такой же простенький фреймворк (библиотека), чтобы просто подключить его ссылочкой и не собирать по частям, не закачивать какие-то дополнительные возможности, а просто сесть с сделать то что мне нужно?
Аноним 15/01/17 Вск 12:22:04 #117 №912532 
>>912530

React
Аноним 15/01/17 Вск 12:25:29 #118 №912533 
>>912532
Я читал что он очень ограничен в своих возможностях, а что самое ужасное, ему нужно в случае всего каике-то сторонние модулиподключать.
Это всё правда?
Аноним 15/01/17 Вск 12:25:53 #119 №912534 
>>912530
VueJS
Аноним 15/01/17 Вск 12:29:31 #120 №912535 
>>912511
> Скачает твой код, подправит, и будет использовать свою версию.
>>912359
> C# это попытка сделать яву с кучей говна и сахора
А получилось так, что все новые фичи и сахар джава перенимала из С# с опозданием на пару-тройку лет. Так что попытка вышла отличнейшая. Если бы еще не была привязана к одной платформе - java-приложения были бы очень сильно потеснены.
>>912054
> ТайпСкрипт, Дарт, ФлоуТайп нахуй не нужны
Яскозал!
>>912530
Backbone, всего 2 зависимости - jquery и underscore/lodash. То бишь 3 скрипта. Не слушай этих (>>912532 >>912534) петухов, с этой хуитой тебе еще придется всякие редуксы и роутеры использовать с довольно ограниченным функционалом, плохо принимающим что-то кастомное.
Так-то ангулар первый очень хорош, но скоро его поддержку полностью дропнут, увы.
Аноним 15/01/17 Вск 12:29:36 #121 №912536 
>>912534
Смотрел, читал, к сожалению провёл тест на своём компьютере и он оказался даже медленнее чем jQuery...
Аноним 15/01/17 Вск 12:31:24 #122 №912538 
>>912535
Ну а вот "дропнут поддержку" и что? Мой же сайт будет нормально работать? Я вот тоже склоняюсь к первому ангулляру.
Аноним 15/01/17 Вск 12:35:05 #123 №912541 
С сайта курса валют нужно утащить курс рубля. Например id: "USDRUB" и Rate: "59.6495". Но постоянно вылазит undefined. Я не могу cформатировать нормально нужный адрес к нужному столбцу.
Жабаскрипта не знаю почти.

https://jsfiddle.net/ojwkoLg4/2/
Аноним 15/01/17 Вск 12:36:57 #124 №912542 
>>912541
Есть же ЦБ РФ, который в xml отдаёт курс, нафиг тебе какой-то иностраный поставщик?
Аноним 15/01/17 Вск 13:13:27 #125 №912544 
>>912535
>А получилось так, что все новые фичи и сахар джава перенимала из С# с опозданием на пару-тройку лет

например какие?

>>912536
>медленнее чем jQuery

лол, тогда пиши на жуквери

Аноним 15/01/17 Вск 13:15:47 #126 №912545 
>>912544
> например какие?
linq, многопоточность, async/await
Аноним 15/01/17 Вск 13:18:53 #127 №912549 
>>912511
>твой код, подправит
Ты ебанутый?
Как он исправит мой код у меня на сервере, блять?
Ты ебанутый.
Аноним 15/01/17 Вск 13:23:24 #128 №912552 
>>912054
> на своей недоподелке
И тут ты обосрался. Этой недоподелкой пользуются даже инженеры из гугла, тобишь квалифициронные спецы.
Аноним 15/01/17 Вск 13:25:53 #129 №912554 
>>912549
Кстати, ещё вопрос. Как он посмотрит, если пишу я, например, под NodeJS?
Аноним 15/01/17 Вск 13:27:05 #130 №912556 
>>912545
>linq, многопоточность, async/await

лол что? ты точно в курсе что такое ява?
sageАноним 15/01/17 Вск 13:27:41 #131 №912557 
>>912300
>>912284
Найс попытка, но после жс жаба кажется очень хорошим языком. Просто ты видимо из тех кто "вкатывается" и так яро защищаешь родное болотце. А если бы посмотрел на другие языки, то понял бы к чему запилили тайпскрипт и почему жс все называют говном.
Аноним 15/01/17 Вск 13:29:46 #132 №912560 
>>912557
>но после жс жаба кажется очень хорошим языком
Теперь я знаю, ради кого гугл запиливал дарт.
Слава богам Египта, эта хуитка не взлетела.
Аноним 15/01/17 Вск 13:35:57 #133 №912563 
>>912556
Да. Хочешь сказать в джаве не нужны многопоточность или асинхронщина просто потому что? За асинхронщину недавно вот adswizz задвигал, как у них на джаве все круто с ней.
Аноним 15/01/17 Вск 13:44:21 #134 №912566 
14844770617340.png
>>912557
>то понял бы к чему запилили тайпскрипт
к тому, что гуглодебсы делают джяву из всего к чему прикасаются
как бы понятно, почему гугелу это выгодно, не понятен только восторг дебилов, которых заставляют жрать говно (программировать на джяве)
Аноним 15/01/17 Вск 13:45:13 #135 №912569 
Зачем в express.js функция done(), откуда берется и как использовать? Видел в примерах passport.js
Аноним 15/01/17 Вск 13:50:08 #136 №912574 
>>912566
>>912560
Собственно как и предполагалось, в этом треде одни мамкины вкатывальщики, ничего кроме жс не видавшие.
Аноним 15/01/17 Вск 13:55:17 #137 №912575 
14844777178790.jpg
>>912574
>не жрал говно большой ложкой (программировал на джяве)
>жизнь не понял
Аноним 15/01/17 Вск 13:58:34 #138 №912577 
>>912477
Поэтому в js прототипное ооп, и нехуй изъебываться и пытаться применять парадигмы классового.
Аноним 15/01/17 Вск 14:00:59 #139 №912578 
>>912520
Вебассемблер человекочитаем.
Аноним 15/01/17 Вск 14:05:48 #140 №912579 
>>912577
Нет, ты путаешь функциональное говно с КООП.
А для JS просто нужны приватные свойства/методы.
Аноним 15/01/17 Вск 14:30:46 #141 №912587 
>>912579
Что я путаю?
Ты знаешь что такое ПООП?
Аноним 15/01/17 Вск 14:34:39 #142 №912588 
>>912587
Конечно знаю, блять.
Аноним 15/01/17 Вск 14:38:08 #143 №912590 
>>912579
>А для JS просто нужны приватные свойства/методы.
Проиграл с джявадебса.
Аноним 15/01/17 Вск 14:39:29 #144 №912591 
>>912588
Если знаешь, то о каких приватных свойствах\методах ты говоришь? Зачем они в ПООП? Ты уверен, что понимаешь суть ПООП?
Аноним 15/01/17 Вск 14:41:24 #145 №912593 
>>912591
Я говорю о класс-синтаксисе же.
И вообще, вон, предложение уже есть -- через решётку. И нормально, уже на черновой стадии.
Аноним 15/01/17 Вск 14:46:40 #146 №912595 
>>912593
В том-то и дело, что не нужен в js этот синтаксис.
В js не то что чего-то не хватает, как многие тут утверждают, а напротив, слишком много лишнего.
В js не нужна ни конструкция class, ни оператор new, ни множества еще прочих вещей.
Их впиливали чтобы закосить и облегчить жизнь перекатывальщикам. А перекатывальщикам все мало.

В js иная парадигма, не КООП, он динамичен, тут метапрограммироване во все поля. Но людям слишком сложно и они ноют что им нужно то, чего на самом деле тут не нужно.

Все, что вы просите, должно реализовываться для вас препроцессорами, трансляторами, а не самим языком. И если бы вы понимали что KISS это хорошо, то не ныли бы.
Аноним 15/01/17 Вск 14:48:13 #147 №912596 
>>912593
>через решётку
Куда полезнее было бы это использовать для Symbol.for()

object #ololo == object[Symbol.for('ololo')]
Аноним 15/01/17 Вск 14:53:23 #148 №912598 
>>912595
>ни оператор new
И как ты предлагаешь вызывать функцию с NewTarget?
Через `Object.create(Constuctor.prototype)` и `Function#call`?
Ты ебанутый? Ты ебанутый.

Насчёт всего остального -- согласен, да. Но раз уж заговорили -- просто поддержал тему.
Да и мне всё-равно так-то. Всё-равно ещё года 3-4 не буду использовать ES6+, лол.
Аноним 15/01/17 Вск 14:57:38 #149 №912603 
>>912598
Ебанутый тут только ты, к сожалению, если не умеешь выносить часто используемый код в отдельную функцию.
Аноним 15/01/17 Вск 15:00:19 #150 №912606 
>>912603
>часто используемый код в отдельную функцию
Как-раз в конструктор это и выносится, если наследник нужен во многих местах.
Аноним 15/01/17 Вск 15:03:10 #151 №912608 
>>912606
При чем тут конструктор и оператор. блядь, дебил сука.
Какой же ты тупой, если не понимаешь, что оператор в языке ты уже не перегрузишь, если тебе не запилят эту возможнсть через какие-нибудь мета-методы, а метод блядь легко.

Ты настолько туп, что не смог бы переделать bew Hui() в Hui.new() ?
Ты дебил?
Аноним 15/01/17 Вск 15:26:30 #152 №912620 
>>912575
Наоборот же, антоша.
> Не пробовал писать на нормальном языке объёмные проекты
> жизнь не понял
Так-то лучше.
Аноним 15/01/17 Вск 16:11:33 #153 №912644 
>>912549
Это ты ебанутый. Если код у тебя на сервере, то клиенту похуй, у него нет никакого доступа к твоему коду вообще, приватность методов тут никаком боком не относится. Изначальный посыл был, что "вот у меня есть два метода, но пользователю моей либы я хочу дать доступ лишь к одному из них".
>>912554
Никак не посмотрит, ты даже не понимаешь, о чём речь в разговоре шла.

>>912529
>про объясни, зачем это делать?
Для того, чтобы использовать методы, которые какой-то хуй приватными сделал.

>яваскрипетры макаки необучаемые, вкатившиеся в кодинг неделю назад
Ээ, каким образом это вытекает из наличия кучи литературы по джаве?
Аноним 15/01/17 Вск 16:17:16 #154 №912648 
>>912620
>джява
>на нормальном языке

Ты уже из треда вытекаешь, Раджешь.
Аноним 15/01/17 Вск 16:36:40 #155 №912655 
>>912566
Одни джавадебилы говорят что это идеальный язык и делают из всего, к чему прикасаются джаву, даже из лиспа, даже из пайтона, да даже из аллаха.
Вторые говорят что джава не нужна и вообще не тру и ебашат веб на пыхе, перле или рубях. Съебитесь в свой загон, заебали по всей борде срать.
Аноним 15/01/17 Вск 16:39:31 #156 №912657 
>>912648
>>912655
Разговор был только за строгую типизацию (независимо от языка), а не за то, что "джява лучший язык", не фантазируйте.
Аноним 15/01/17 Вск 16:41:25 #157 №912658 
Ребят, я вчера проебался и не успел выучить все фреймворки, которые вышли, а ещё и за сегодня учить. Подскажите, что делать?
Аноним 15/01/17 Вск 16:42:18 #158 №912660 
>>912657
Строгую типизацию сожно прикрутить к любому языку ввиде препроцессинга. А ты попробуй выпилить строгую типизацию из языка, в который она вшита. Сможешь java использовать в качестве шелл-языка? В качестве интерактивного репла для управления какой-то среды? Удобно будет?
А js удобно. А чтобы на js писать что-то большое для поддержки, есть внешние инструменты.

Бритва Оккама.
Аноним 15/01/17 Вск 16:47:35 #159 №912661 
dUcr8Oqa.png
>>912660
>java использовать в качестве шелл-языка
>интерактивного репла для управления какой-то среды
>А js удобно
лол
Аноним 15/01/17 Вск 16:53:39 #160 №912665 
>>912658
покупать гроб и ползти в известном направлении
Аноним 15/01/17 Вск 16:54:11 #161 №912666 
>>912661
Стикероеб, съеби в вкашечку.
Аноним 15/01/17 Вск 17:03:22 #162 №912670 
>>912660
Ты из тех, кто пишет GTK-приложения на руби?
Я не слепой фанатик какого-то определённого языка и не пытаюсь пихать его там, где ему не место. Очевидно, что для шелла удобней использовать скриптовый язык.
Аноним 15/01/17 Вск 17:04:57 #163 №912671 
>>912670
>удобней использовать скриптовый язык
А js, блядь, какой?
Аноним 15/01/17 Вск 17:10:37 #164 №912675 
>>912665
>ползти в известном направлении
На рентген?
Аноним 15/01/17 Вск 17:11:00 #165 №912676 
>>912671
В треде вроде как не шелл обсуждали. То, что JS скриптовый и подходит для шелл скриптов лучше, чем джава, ещё не означает, что на js приятно писать что-то сложнее туду-списка.
Аноним 15/01/17 Вск 17:13:28 #166 №912678 
>>912676
Тред посвящен языку, а не какому-то отедльному его применению.
JS отлично подходит в качестве встраиваемого, в отличии от.
Мой пост был о том, что из языка в котором зашито всё, нельзя это просто взять и выбросить, в отличии от того, что когда в языке тебе не хватает чего-то - прикрутить это.
Аноним 15/01/17 Вск 17:16:11 #167 №912680 
>>912676
>что на js приятно писать
Ну у bash и powershell то синтаксиси очевидно приятнее!
Аноним 15/01/17 Вск 17:19:59 #168 №912684 
Ребята, привет, есть один цикл, в каждой итерации я конструирую пикчу и добавляю её в документ, есть кое-какая обработка события onload каждой пикчи.

Я правильно понимаю если я напишу этот ивентлисенер инлайн, т.е. внутри тела цикла, то JS клонирует эти функции столько раз, сколько итераций цикла, а если я вынесу тело функции за пределы цикла, то в памяти будет только один экземпляр этого лисенера на все пикчи?
Аноним 15/01/17 Вск 17:21:06 #169 №912685 
>>912684
да.
Аноним 15/01/17 Вск 17:22:48 #170 №912686 
>>912685
Спасибо, добра.
Аноним 15/01/17 Вск 17:30:57 #171 №912688 
edXqjhwU.png
>>912680
дурачок не унимается и продолжает пихать жс всюду?
bash неплох, есть альтернативы, если ты неосилятор - это уже другой разговор
Аноним 15/01/17 Вск 17:45:22 #172 №912692 
Блджад, как захватить WebGL Canvas в изображение?
Перепробовал все советы, один хуй на выходе прозрачное изображение (пнг), что в Хроме, что в FF.

Вот что делаю, например, на этой странице: http://learningwebgl.com/lessons/lesson01/index.html

const glctx = document.querySelector('canvas').getContext('webgl', {preserveDrawingBuffer: true})
glctx.canvas.toDataURL()

Пробовал через readPixels, как сказано тут: http://stackoverflow.com/a/18804083
Получается та же хуйня.
Аноним 15/01/17 Вск 18:16:39 #173 №912707 
>>912692
Потому что в твоих примерах при рисовании контекст был создан без {preserveDrawingBuffer: true}

Сохрани эту свою страницу на комп, допиши там в функции initGL {preserveDrawingBuffer: true}
и все заработает.
Аноним 15/01/17 Вск 18:28:19 #174 №912715 
>>912707
Блджад, и правда заработало.
Спасибо!
Выходит, зафиксировать изображение из webgl канваса можно только передав соответствующий аргумент в получение контекста на этапе инициализации?
Аноним 15/01/17 Вск 18:36:34 #175 №912718 
>>912715
Ну, а иначе буффер изображения не хранится в озу, оно в видеопамяти же. Откуда его брать, чтобы тебе отдать в виде пикчи?

Возможно и можно сделать скриншот страницы, через апи самого браузера, которое доступно для расширений например, и из него уже вырезать область с канвасом. Но в обычном клиентском js нет такого апи, то небезопасно..
Аноним 15/01/17 Вск 18:40:20 #176 №912722 
>>912718
Ясно, спасибо!
Аноним 15/01/17 Вск 19:25:11 #177 №912748 
>>912608
>переделать bew Hui() в Hui.new()
Пиздец. Даун, не понимающий ООП. Спешите видеть!

>>912644
>Это ты ебанутый.
Нет, ты
Слушай, анон, в чём проблема? Приватные методы - хороший способ убрать то, что не нужно видеть. Я-бы с удовольствием перепилил некоторые функции для расчётов и пр., чтобы их не было видно вообще во внешнем коде.
Это хорошое дополнение к языку, приучает контролировать геттерами-сеттерами всё важное и не давать добраться юзеру к чему-то важному.
Аноним 15/01/17 Вск 19:33:10 #178 №912757 
>>912748
>Пиздец. Даун, не понимающий ООП. Спешите видеть!
Посмотрели на тебя, что дальше?
Аноним 15/01/17 Вск 19:35:46 #179 №912758 
>>912748
Сосачую этого, синглоёб в треде.
несовместимость версий Аноним 15/01/17 Вск 19:41:46 #180 №912762 
Поясните, почему так расплодились уёбищые быдло-ориентированные пакетные менеджеры вроде composer и npm, где все зависимости кладутся в подпапку, вместо того, чтобы храниться и обновляться централизованно по принципу "1 пакет на всю систему, а если где-то в зависимостях обнаружилась несовместимость, то вы идёте и фиксите её, а не тащите 100500 версий пакетов ради какого-то брошенных пакета, на который разраб положил хуй". Вы понимаете вообще, что если вы позволите разрабам не устранять несовместимости, их никто не будет устранять, потому что "и так работает, работает - не трожь, а на самом деле мне просто лень копатся в чужом говнокоде", хотя там фиксить обычно от силы пару строчек, у вас будут копится пакеты, которые не совместимы с новыми версиями других пакетов, которые в свою очередь будут зависить от старых и потенциально уязвимых версий других пакетов. Какой дебил мог это придумать, какой дебил мог это поддержать и как вы собираетесь эту проблему решать?
Аноним 15/01/17 Вск 19:45:05 #181 №912763 
14844987051540.png
>>912748
>>912758

Тред полон идиотов.
Продолжайте жить в манямирках.
Аноним 15/01/17 Вск 19:49:43 #182 №912765 
>>912552
Эти "квалифицированные спецы" будут писать на том, на чем им скажет писать начальство.

Если инженеры из гугла будут ставится хмурым и жрать говно, ты свое говноедство тоже будешь так аргументировать?
Аноним 15/01/17 Вск 19:50:46 #183 №912766 
>>912506
съеби нахуй, ты даже не понял о чем я говорю
Аноним 15/01/17 Вск 20:00:51 #184 №912771 
>>912763
Может, тогда ещё убрать `instanceof` и `in`? И циклы все в методы переделать.
Пиздец даун. Операторы в JS нужнее тебя в этом треде.
Аноним 15/01/17 Вск 20:04:02 #185 №912772 
>>912771
Если бы ты был хоть чуть-чуть прошаренее, то знал бы, что половина операторов и так перегружаются с помощью мета-методов. И твой instanceof ни что иное как obj[Symbol.hasInstance]()

Так что продолжай пососасывать причмокивая.
Аноним 15/01/17 Вск 20:30:57 #186 №912778 
>>912771
>Может, тогда ещё убрать `instanceof` и `in`? И циклы все в методы переделать.
Охуенно было бы, кстати. После этого останется только this выпилить, === переделать в == и получится более-менее нормальный язык.
Аноним 15/01/17 Вск 21:08:47 #187 №912795 
Есть массивы (arr), и есть нечто (smth), что сделано на основе массива (точнее, оно - специально сформированный массвив. Нужно написать функции isArray и is_SMTH, при этом isArray( arr ) === true, isArray( smth ) === true, но is_SMTH( arr ) === false и is_SMTH( smth ) === true. Есть идеи?
inb4 переделай на объекты
Там та же самая проблема будет, только с объектом вместо массива.
Аноним 15/01/17 Вск 21:12:25 #188 №912799 
>>912795
Object.getPrototypeOf
Аноним 15/01/17 Вск 21:17:58 #189 №912800 
Сап, аномач. Как в жс можно целое число к float привести?
Например, у меня есть 412, как его сконвертировать в 4.12?
Т.е. брать последние 2 знака как знаки от точки.
550 = 5.5, 5155 = 51.55 и т.п.

Пока только идея конвертировать в строку, добавлять . на 3 с конца позицию, это нормально?
Аноним 15/01/17 Вск 21:42:19 #190 №912806 
>>912680
> powershell то синтаксиси очевидно приятнее
Нет, повершелл говнина
Аноним 15/01/17 Вск 21:44:22 #191 №912809 
>>912800
Любое целое число в js и есть float, в v8 точно так было.
Аноним 15/01/17 Вск 21:45:30 #192 №912810 
>>912800
> у меня есть 412, как его сконвертировать в 4.12?
Стоп, в школе деление уже не проходят?
Аноним 15/01/17 Вск 21:45:32 #193 №912811 
>>912809
ТЗ не читай, сразу отвечай.
Аноним 15/01/17 Вск 22:57:30 #194 №912836 
>>912810
Спасибо, и правда тупо
Аноним 15/01/17 Вск 23:08:05 #195 №912839 
>>912563 хочу сказать, что не понимаешь о чем говоришь.

linq в java нет и не было
многопоточность всегда была
async/await нет, вообще не знаю что это за шняги и зачем она нужна
Аноним 15/01/17 Вск 23:36:14 #196 №912849 
>>912800
Тестовое выполняешь?
Аноним 16/01/17 Пнд 00:20:12 #197 №912863 
14845152121290.png
14845152121311.png
>>912799
Спасибо.
Аноним 16/01/17 Пнд 00:21:00 #198 №912865 
Зачем учить весь жаваскрипт, если есть jquery?
Аноним 16/01/17 Пнд 00:26:31 #199 №912867 
>>912865
чтобы не сидеть на jquery в 2007
Аноним 16/01/17 Пнд 00:28:03 #200 №912870 
>>912867
У него версия апнулась в прошлом году.
Аноним 16/01/17 Пнд 00:37:39 #201 №912874 
>>912867
Do more, write less
Аноним 16/01/17 Пнд 00:41:09 #202 №912876 
>>912867
80% сайтов, в том числе самые популярные, используют jquery, остальные 20% старое говно.
Аноним 16/01/17 Пнд 05:24:49 #203 №912959 
>>912748
В том же луа, например, все через Class.new() и хуячат, потому что по-другому нельзя, и ничего, живут.

>и не давать добраться юзеру к чему-то важному.
Библиотеку свою спрячьте, блин.

>хороший способ убрать то, что не нужно видеть.
Если не хочешь чего-то видеть — не смотри. Ни одного конкретного аргумента, кроме как "не хочу", "спрятать", "ооп", "правильный код" так и не прозвучало. Что такого хорошего-то в ограничении пользователя, особенно когда он может это обойти, если совсем надо? Задокументируйте, обозначьте — дальше пусть сам ебётся, если что-то сломает используя "приватное". Я уже слышу запах своего пердака из будущего, когда приватность введут.
Вот есть OGVKit на ифон, webm проигрыватель. Там есть методы для показа и скрытия кнопок управления. И они приватные, блядь, вызывается только по внутренным событиям. Ну вот нахуя? Мне надо было в нужные мне моменты прятать или показывать, пришлось копипастить код тех функций в свой контроллер (даже к приватным переменным обращений не было).
В питоне в xlwt, например, была возможность доступа к экселевским листам лишь по названию. А мне по индексу надо или просто по всем листам пройтись, а массив листов "приватный" (к счастью, в питоне это легко обходится). В итоге через workbook._Workbook__worksheets[idx] и приходилось лазить. Но тут имя класса указано, а это не очень хорошо и может принести проблем.
Я уверен, у многих найдутся такие примеры, когда что-то полезное зачем-то прячут, вынуждая костыли пилить.

В общем, похуй, чего спорить.
Аноним 16/01/17 Пнд 07:42:22 #204 №912966 
>>912876
>80% сайтов, в том числе самые популярные, используют jquery
L E G A C Y

E
G
A
C
Y
Аноним 16/01/17 Пнд 09:38:02 #205 №912979 
>>912865
> Зачем учить всю математику, если есть калькулятор?
Аноним 16/01/17 Пнд 09:44:44 #206 №912981 
>>912839
> что не понимаешь о чем говоришь
Я сравниваю. В С# многие вещи сделаны на голову продуманнее и удобнее. Только в 1.8 добавили лямбды например.
> вообще не знаю что это за шняги и зачем она нужна
Действительно, зачем в приложении может понадобится асинхронность?
В общем этот холивар не имеет особого смысла.
Аноним 16/01/17 Пнд 09:45:33 #207 №912983 
>>912748
> Даун, не понимающий ООП
Фанат Алана Кея, ты?
Аноним 16/01/17 Пнд 10:23:20 #208 №912990 
>>912979
Но ведь математика js-программисту реально не нужна.
Аноним 16/01/17 Пнд 10:26:29 #209 №912992 
>>912990
А как же Веб Гэ Эль?
Аноним 16/01/17 Пнд 10:27:07 #210 №912993 
>>912990
Не умеешь в аналогии - иди нахуй.
Аноним 16/01/17 Пнд 11:35:31 #211 №913019 
>>912981
>Я сравниваю. В С# многие вещи сделаны на голову продуманнее и удобнее. Только в 1.8 добавили лямбды например.

Как ты можешь сравнивать ява и c#, если ты не имеешь представления о яве и несешь какой-то бред?

>Только в 1.8 добавили лямбды например.

и? ты хочешь, что сказать, что лямбды придумали специально для c#? ты хочешь сказать, что раньше нельзя было писать код лямбд?

>Действительно, зачем в приложении может понадобится асинхронность?

ты утверждаешь, что в яве нет асинхронности? Ты что несешь вообще?
Аноним 16/01/17 Пнд 11:36:48 #212 №913022 
>>912966 этот ваш ангуляр теперь тоже легаси
Анон, подскажи Аноним 16/01/17 Пнд 11:40:57 #213 №913025 
Как вообще цивилизованно можно решить проблему с невозможностью задать в классе свойство-значение?
Вот я, допустим (https://jsfiddle.net/bjg5Lv7L/), решил сделать класс User, каждому экземпляру которого давался бы свой айдишник от 0 до +∞.
Лучше ничего не придумал, чем по совету Кантора задать прототипу а-ля "внутреннее" свойство.
Так вот, как бы данную проблему решил прокаченный анон, или я накорябал максимум, который (пока) можно сделать?
Аноним 16/01/17 Пнд 11:42:01 #214 №913026 
>>913025
Быстрофикс: ссылка без запятой, конечно же https://jsfiddle.net/bjg5Lv7L/
Аноним 16/01/17 Пнд 12:12:55 #215 №913037 
>>912990
Конечно. Особенно это заметно >>912800
Аноним 16/01/17 Пнд 12:14:33 #216 №913038 
>>912983
Так он как раз не понимает постулатов Кея.
Он же из переделанной (new Class) конструкции в (Class.new) увидел сингелтон, а не посылку сообщения объекту.
Аноним 16/01/17 Пнд 12:15:36 #217 №913040 
>>912993
Для этого нужно абстрактное мышление.
90% обитателей /pr в него не умеют.
Аноним 16/01/17 Пнд 12:17:39 #218 №913041 
>>913025
Лол: https://codepen.io/anon/pen/xgEWJY?editors=0010
Аноним 16/01/17 Пнд 12:17:42 #219 №913042 
>>913025
> как бы данную проблему решил прокаченный анон
Не выебывался с сахаром, и писал бы все на страх добрых прототипах и конструкторах отдельно.
Для консистентности.
Аноним 16/01/17 Пнд 12:19:00 #220 №913043 
>>913025
>User.prototype._quantity++;
То, что ты в конструкторе дергаешь свойство их прототипа, а не из образешься к нему из самого инстанса, говорит о том, что ты вообще не понимаешь прототипную объектную модель
Аноним 16/01/17 Пнд 12:26:05 #221 №913045 
>>913043
Поясни, пожалуйста, почему нельзя так делать?
не-тот-анон
Аноним 16/01/17 Пнд 12:37:04 #222 №913048 
>>913045
> почему нельзя так делать?
Менять поле прототипа в экземпляре? Вот уж действительно.
Аноним 16/01/17 Пнд 12:59:44 #223 №913056 
http://www.2ality.com/2017/01/import-operator.html
Охуенно!
Аноним 16/01/17 Пнд 13:12:06 #224 №913063 
>>913043
Я как бы поэтому и спрашивал. А вот то, что ты сделал, это указал мне на то, что я дурак, ничего не предложив самому. И, кстати, ниже тебя, опять же, спросили, почему, на что ты ответил "вот уж действительно". У меня два предположения - либо ты сам нихера не понимаешь, либо ты просто мудак. Скорее всего, второе
Аноним 16/01/17 Пнд 13:14:16 #225 №913065 
>>913063
Нахуя тебе этот твой счетчик _quantity в протипе инстансов?
Почему ты не сделаешь его статическим свойством самого конструктора User? Или ты не знаешь, что такое стические свойства, и что функции это тоже объекты?
Аноним 16/01/17 Пнд 13:17:09 #226 №913066 
>>913065
Для это придется отказаться от использования сахара. Я же потому и спрашивал, что class не дает возможности устанавливать свойства-значения.
Аноним 16/01/17 Пнд 13:19:46 #227 №913069 
>>913045
Менять свойства в прототипах вообще - хуевая практика, вносящая путаницу. Прототипы хранят методы. которые у всех инстансов будут одинаковыми, и если свойства - то со значениями по умолчанию.

В его конкретном примере, где он пытается хранить динамический счетчик чтобы генерировать id - это все равно, что в магазине, после каждого покупателя продавец будет рассылать сообщения всем предыдущим (и последующим) покупателям смс о том, что количество покупателей стало больше. У него короче нелогичное решение аблсолютли, ибо этот его счетчик никак не относится к отдельному инстансу, он относится к классу как таковому и считает количество инстансов этого класса, а значит и свойством должен быть класса, а не инстансов.
Аноним 16/01/17 Пнд 13:21:43 #228 №913070 
>>913066
Ты дурак? Ты итак отказался от сахарах, и пишешь в протип мимо сахара.
Замени свой user.protytype.q на user.q

И иди учить js заново.
Аноним 16/01/17 Пнд 13:25:00 #229 №913074 
>>913066
>>913070
Если тебе так лень инициализировать статическое свойство строкой ниже декларирования класса, используй замыкание на здоровье. Но для одного свойства, это вполне себе оверхед. https://jsfiddle.net/erx7fbhk/
Аноним 16/01/17 Пнд 13:36:26 #230 №913078 
>>913074
https://codepen.io/anon/pen/EZgLqz?editors=0010

ES5 дикаратар-стайл, все по Кантору.
Аноним 16/01/17 Пнд 14:38:43 #231 №913121 
>>913078 охуенная читаемость кода. лол
Аноним 16/01/17 Пнд 17:33:54 #232 №913221 
>>912772
>половина операторов и так перегружаются с помощью мета-методов
Которые, естественно, не нужны.
Аноним 16/01/17 Пнд 17:37:30 #233 №913222 
>>912865
Зачем учить язык, если есть раскладка на клавиатуре?
Аноним 16/01/17 Пнд 23:53:17 #234 №913463 
Аноны, подскажите как сделать аккардион с неизвестным количеством подменю. Делаю без джейквери, фреймворков и библиотек.
Аноним 17/01/17 Втр 00:04:11 #235 №913472 
>>913463
Просто берешь и делаешь без задней мысли.
Аноним 17/01/17 Втр 00:09:25 #236 №913481 
>>913472
ага спасибо.
я подумаю и сделаю, а ты и дальше продолжай сосать хуи.
Аноним 17/01/17 Втр 00:22:34 #237 №913495 
>>913481
У тебя какие-то проблемы с сосанием хуёв?
Аноним 17/01/17 Втр 00:46:52 #238 №913530 
>>913495
ты правда хочешь говорить в жс треде о сосании хуев?
Аноним 17/01/17 Втр 12:16:58 #239 №913676 
Посоны, поясните за геймдев на JS.
Как оно вообще?
В том плане, приятно ли на жс игростроем заниматься, при условии, что сам процесс разработки на жс очень доставляет.
Описание логики нуднее, чем, скажем, на Lua?

Правильно ли я понимаю, что все современные игровые движки на жс задействуют canvas?
Аноним 17/01/17 Втр 12:28:21 #240 №913679 
>>912763
>ES5 в 2к17.
Аноним 17/01/17 Втр 12:37:23 #241 №913683 
>>913679
>в 2к17 не знать, что у стрелочных функий нельзя перебиндить this
Аноним 17/01/17 Втр 12:39:54 #242 №913684 
>>913676
>Правильно ли я понимаю, что все современные игровые движки на жс задействуют canvas?
Да.

Об остальном не скажу, не знаю что для тебя приятно.
Аноним 17/01/17 Втр 12:48:49 #243 №913686 
>>913684
Хорошо, а на каком движке можно быстро запилить простейший аналог арканоида или флаппи-берда, дабы ознакомиться?
Без текстур и без физических наворотов.
Аноним 17/01/17 Втр 17:44:55 #244 №913841 
Ангуляробояре, кто работал с ui-router? Есть простой способ превратить url в state?
Суть в том, что когда я гружу приложение на роуте '/' и потом перехожу из него на '/url', то всё норм. Но если сразу попытаться зайти на '/url' или обновить страницу, будучи на нём, то ничерта не грузится. Не срабатывает даже перенаправление на '/' с неправильного роута.
Аноним 17/01/17 Втр 17:59:55 #245 №913850 
Добрый анон помоги нубу.
Выбрал JS основным языком, который буду юзать, но начинать дрищу с него не рекомендуют, потому начал изучать основы программирования на С. Понял синтаксис и основы, но не затачивал решения задач, т.е. я осознаю где и что в этом С, но не применял его на практике. Так вот, что хочу знать: таких знаний будет достаточно, чтобы начать учить JS и не стать говном, или всё-таки надо задрочить С? Просто скучноват он, да и все-равно его применять не планирую, но становиться быдлом не хочу. Спасибо!
Аноним 17/01/17 Втр 18:04:26 #246 №913852 
>>913850
>но становиться быдлом не хочу
А правда в том, что знания Си и прилагающиеся к нему в работе с JS тебе не понадобятся ещё очень долго, возможно - никогда.
Аноним 17/01/17 Втр 18:13:15 #247 №913856 
>>913852
Понимаю, но в воспитательных целях надеюсь я не зря потратил время =) Спасибо за ответ
Аноним 17/01/17 Втр 18:46:54 #248 №913870 
>>913856
Чтобы начать изучать Js, тебе нужен просто курс основ программирования. Понимать, как работают циклы, ссылки, функции. И то, это все необязательно, в учебниках Js это в любом случае разжевывается.
Другой вопрос - для чего ты собираешься использовать Js. Если для веба (а если не для веба, то это странно), то хорошо бы заштудировать html и css, благо, эти две вещи простые как жопа.
Аноним 17/01/17 Втр 19:00:43 #249 №913874 
>>913870
>а если не для веба, то это странно

А что скажешь про electron.js?
Аноним 17/01/17 Втр 19:09:20 #250 №913883 
>>913870
Понял, спс. Да для веба, html и css точу на htmlacademy.
Аноним 17/01/17 Втр 19:11:47 #251 №913885 
>>913874
Примеров использования js где-нибудь кроме веба множество, но нахуя?
Аноним 17/01/17 Втр 19:24:05 #252 №913898 
>>913885
Ну, если ты очень любишь Js, то ты захочешь писать на нем инструкции на холодильнике для своих детей. Вопрос в том, что человек спрашивал про то, с чего ему начать любить Js, а начать лучше с того, с чего начинал сам Js
Аноним 17/01/17 Втр 19:49:07 #253 №913932 
14846717480890.png
>>913850
JavaScript неудачный вариант для новичка. Функции как объекты, объекты как массивы, запутанная схема кастования типов при сравнении: https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3 , хаки для вещей, которые в нормальных ЯП реализованы искаропки: http://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex/6969486#6969486
Отсюда и обилие всяких is-function.js и is-number.js

Лучше со старта не забивать себе голову этой дрянью, а взять сишку и какой-нибудь учебник по алгоритмам, реализовать стек, очередь, различные алгоритмы на деревьях и графах. Далее взять язык с нормальным ООП и написать на нём пару игрулек. А потом, если уж припечёт, окунайся в джс-парашу.
Аноним 17/01/17 Втр 19:52:39 #254 №913936 
>>913898
> если ты очень любишь Js, то
ты долбоёб
Аноним 17/01/17 Втр 19:54:45 #255 №913938 
14846720856850.jpg
14846720856881.jpg
14846720856922.jpg
Профи, поясните за Dojo Toolkit. Я смотрю на него и вижу, что из коробки есть многие фичи, которые в современных фреймворках типа Angular и Ember появились относительно недавно. Почему он так непопулярен? Пишется ли сейчас какой-то софт на нём?
Алсо, дополнительный вопрос: пишу на Python/Django, хочу делать фронт для своего проектика, который задуман как SPA. Чем бы вы пользовались на моём месте? Таблицы, кнопки, тулбары и деревья в проекте будут, а на ExtJS денех нет (проект не планируется быть OpenSourсе, а пиратить убеждения не позволяют).
[SPOLER]Скидываю лолей авансом[/SPOILER]
Аноним 17/01/17 Втр 19:57:46 #256 №913944 
>>913938
Очевидный реакт очевиден.
Аноним 17/01/17 Втр 20:09:55 #257 №913955 
>>913932
>пикрил
Ох уж этот реддит.
Не поленился, нашел пекедж:
https://github.com/tjmehta/is-positive-integer

В package.json - зеродеп и три дев зависимости для тестирования.
Сам пекедж состоит из одного файла и дюжины loc.
Аноним 17/01/17 Втр 20:16:00 #258 №913963 
>>913955
Блять, у этой хуйни лайков больше, чем во всех моих репах вместе взятых. Нужно пересаживаться на JS и клепать is-string.js
Аноним 17/01/17 Втр 20:20:27 #259 №913965 
>>913938
> Почему он так непопулярен?
Потому же, почему и эмбер. Сложный и тяжелый. Хотя на самом деле просто нимодна
Аноним 17/01/17 Втр 20:25:16 #260 №913972 
>>913938
> Чем бы вы пользовались на моём месте?
Ember/Angular
Аноним 17/01/17 Втр 20:28:40 #261 №913977 
>>913938
Rax же. Алибаба хуйню не посоветует.
Тем более, реакто-совместим. Если что, пересядешь на другой стул.

https://twitter.com/survivejs/status/819811229690535936
Аноним 17/01/17 Втр 21:53:09 #262 №914057 
>>913938
Ты должен этому треду еще лолей
Аноним 17/01/17 Втр 23:14:58 #263 №914145 
>>913932
>учебник по алгоритмам
Посоветуйте самый наигоднейший.
Аноним 17/01/17 Втр 23:56:52 #264 №914176 
14846866125620.png
Вся суть фреймворо-вкатывальщиков, которым ванила не нужна.
Аноним 18/01/17 Срд 00:33:27 #265 №914191 
Ананасы, помогите пожалуйста. Сам вопрос на stackoverflow, но там чувак предложил вариант на чистом JS, что мне не подходит, т.к. хочу сделать spa полностью на ангуляре.
http://ru.stackoverflow.com/questions/616064/angularjs-%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-input
sageАноним 18/01/17 Срд 00:35:44 #266 №914193 
>>911262 (OP)
>JavaScript
Гавно для тп.
Аноним 18/01/17 Срд 00:46:38 #267 №914199 
>>914193
У тебя есть что-нибудь получше?
Аноним 18/01/17 Срд 00:47:38 #268 №914202 
>>914199
luajit
Аноним 18/01/17 Срд 01:00:40 #269 №914209 
Ананасы, посоветуйте сборку реакта с вебпаком. Никак не могу его прикрутить к своей системе, хоть убей.
Поднимает, но картинки не подключает и роуты не работают. Урл меняется, вьюха - нет.
Нифига не понимаю суть вебпака этого.
Может у кого-нибудь простейший проектик есть на react+scss+webpack?
Аноним 18/01/17 Срд 01:13:45 #270 №914214 
>>914199
Для тебя нет. Ты мозговой инвалид. Некоторые киселя по ящику зырять, ты вот, корявыми пальцами в бородавках, гавнокод на жоэс набираешь за дошир.
Аноним 18/01/17 Срд 01:15:05 #271 №914215 
>>914209
Начни носить брюки в обтяжку и жахаться в срачельник и все сразу заработает. Фраентенд чует, что ты не из своих и не дается тебе.
Аноним 18/01/17 Срд 01:27:54 #272 №914221 
>>914209
https://github.com/mxstbr/react-boilerplate
Аноним 18/01/17 Срд 01:58:49 #273 №914233 
>>914214
>Для тебя нет.
Значит, нет вообще.

</thread>
Аноним 18/01/17 Срд 02:01:37 #274 №914234 
>>914202
>lua
Нет, спасибо. Этот синтаксис заставляет меня блевать.
Аноним 18/01/17 Срд 02:46:37 #275 №914251 
14846967978500.png
А насколько ООП востребовано в веб-разработке? Во фронт-энде, например? Было вот такое тестовое - хз, что там отвечать, по-идее. Я бы тупо через ng-repeat ангуляром вывел или чем-то подобным в реакте. Нах там классы нужны и методы? Это ж комменты простые. Или это все так строят архитектуру? КЛАСС APP, У НЕГО ЕСТЬ КЛАССЫ ФУТЕР И ХЭАДЕР...
Покажите простой пример ООП, который реально встречается, а не Animal -> Cat.
На самом деле плюсую к тем, кто выше писал, что проблема не найти обучающие материалы, а найти материалы, которые РЕАЛЬНО используются или, хотя бы, близки к этому.
Один раз вообще статью читал, где фронтам рекоммендовали выучить сколько кб ссылка занимает и задрочить алгоритмы с обходами бинарных деревьев. Где, блеать, в обычном SPA, это может пригодиться???
Аноним 18/01/17 Срд 02:53:58 #276 №914252 
>>914176
анон, объясни прикол, я сам вкатывальщик только в реакт
Аноним 18/01/17 Срд 03:19:28 #277 №914255 
>>914252
Гавнакод на ангуляре. Писала макака (другие на ангуляре и гавнариакте не пишут). Разъяснять лень.
Аноним 18/01/17 Срд 05:31:40 #278 №914279 DELETED
>>911262 (OP)
Всем жопоебам тред етат посвещен, бббгггеее. Вебьпаком анальное калецо сжато и оттранспилено па самые гланды, хеххе. Анальные утехи маленькава скоупа. Директива писаная залупой по екрану, хех.
Аноним 18/01/17 Срд 06:14:15 #279 №914291 
>>914176
Проиграл с кастинга в строку и последующих сравнений.
Аноним 18/01/17 Срд 06:19:27 #280 №914292 DELETED
>>911262 (OP)
Жахаюсь в попяндрий скоупам, бббггеее. Кто са мной мальчики, хехе.
Аноним 18/01/17 Срд 06:44:45 #281 №914296 
>>914251
>Где, блеать, в обычном SPA, это может пригодиться???
Никто не спорит, что создать виджет комментариев легко и без применения ООП.
Однако создание изолированного класса [здесь] сродни компонентному подходу, т.е. повысит и упростит реиспользуемость кода в будущем.
Так что ООП в фронт-энде не лишено смысла.
Аноним 18/01/17 Срд 07:29:32 #282 №914301 
>>914176
Это же шутка какая-то? Айди даётся по порядковому номера элемента в массиве (зачем вообще такой айди нужен, это же индекс?), но при этом элеметы оттуда могут удаляться, то есть получится несколько элементов с одинаковыми айди.
Аноним 18/01/17 Срд 07:51:07 #283 №914303 
14847150672710.png
>>914301
Спасибо Абу за спам-лист.
Аноним 18/01/17 Срд 08:54:33 #284 №914315 
>>914251
ммм UML, OOP
Универом попахивает)
Аноним 18/01/17 Срд 09:38:54 #285 №914336 
14847215341480.png
>>914303
Абу пидор, двачую
Аноним 18/01/17 Срд 09:40:18 #286 №914337 
>>914251
> в обычном SPA
Ну если для тебя смысл жизни это лепить круды, то можешь забить вообще на теорию.
Аноним 18/01/17 Срд 09:45:25 #287 №914343 
>>914251
>насколько ООП востребовано в веб-разработке?
НИНУЖНО
во фронтеде востребовано ФП, в частности FRP
ООП - для отсталых яванских макак
Аноним 18/01/17 Срд 09:58:30 #288 №914351 
>>914301
Нет, не шутка.
Аноним 18/01/17 Срд 09:59:29 #289 №914353 
>>914337
> Ну если для тебя смысл жизни это лепить круды
Это же 95% тасков
Аноним 18/01/17 Срд 10:04:40 #290 №914357 
>>914301
Если бы ты присмотрелся, о понял, что унео там с айди не все так просто даже. Они у него вынлядят как
011
021
031
...
0441
0451
Аноним 18/01/17 Срд 10:05:37 #291 №914358 
>>914337
> фронтенд
> лепить круды
Аноним 18/01/17 Срд 10:11:14 #292 №914361 
>>914251
В твоем задании хотели, чтобы ты рассобачил сам интерфейс на MVC, а модели попривязывал к предметным сущностям - пользователь\комментарий\етк
Аноним 18/01/17 Срд 10:17:53 #293 №914364 
>>914358
Ну окай, интерфейсы к крудам
Аноним 18/01/17 Срд 10:21:12 #294 №914366 
>>914361
Комментбокс на MVC паттерне? Ёбу дал?
Тогда из него вырастет достойный продолжатель дел TodoMVC.
Аноним 18/01/17 Срд 11:04:14 #295 №914389 
>>914251
Спасибо за публикацию нашего ТЗ на дваче. Мы вам перезвоним
Аноним 18/01/17 Срд 12:56:52 #296 №914449 
Господа, у меня проблемы с гуглением. Вот, у массива есть метод map. Возвращает новый массив с результатами работы функции-коллбэка. Если ли нечто похожее для объектов (ассоциативных массивов)? Типа вот такого, только еще чтобы с ключами можно было что-то делать https://jsfiddle.net/jezh5vgm/
Аноним 18/01/17 Срд 12:57:47 #297 №914450 
>>914449
Object.keys/Object.values
Аноним 18/01/17 Срд 13:08:52 #298 №914453 
>>914449
Написать самому - никак? Это же легко.
Аноним 18/01/17 Срд 13:12:05 #299 №914457 
>>914449
>>914450

const mapping = {
hello1: 1,
hello2: 2,
hello3: 3
}

Object.keys(mapping).reduce((o, key) => (o[key] = `${mapping[key]} darling`, o), {})
Аноним 18/01/17 Срд 13:36:34 #300 №914474 
Товарищи, я написал небольшую либу на ванильке, задача которой - строить DOM в новом окне (через window.open()) и нет, это не попап, который открывает вкладки в бекграунде.

Скажите, можно ли каким-либо JS фреймворком тестировать функционал либы, кроме монструозных комбайнов типа фантома/селениума?
Тестирование заключается в проверке атрибутов элементов созданного дома на соответствие эталонным.
Аноним 18/01/17 Срд 13:45:43 #301 №914478 
>>914474
>и нет, это не попап, который открывает вкладки в бекграунде
Проиграл.
window.open это и есть попап, мань.
angular bender 18/01/17 Срд 13:49:15 #302 №914481 
херня вопрос

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

как сделать так, чтобы список категорий получить один раз и больше к нему не обращаться?
Аноним 18/01/17 Срд 13:51:44 #303 №914484 
>>914453
Не хотелось бы изобретать велосипед
Аноним 18/01/17 Срд 13:52:15 #304 №914485 
>>914478
>window.open это и есть попап, мань.
Да здесь нечему проигрывать.
Имел в виду не рекламный скрипт.
Аноним 18/01/17 Срд 13:54:52 #305 №914489 
>>914485
Браузер не различает семантику содержания.
Если он настроен блокировать всплывающие окна, он их будет блокировать. В отличии от вкладок.
Аноним 18/01/17 Срд 14:07:31 #306 №914493 
>>914489
Это все понятно, я сделал оговорку для того, чтобы не возникло сомнений относительно благонадежности кода.

Я смотрю, Жасмин умеет отлавливать ивенты, в т.ч. открытие окна.
Может ли она чекать дом в порожденном окне?
Аноним 18/01/17 Срд 14:55:31 #307 №914542 
>>914493
Я вот о чем подумал, дабы избежать использования фантома и селениума, в апи либы своей сделать доступным вызов, который бы возвращал объект window порожденного окна, а входящий в него дом далее использовать в тестировании.
Ведь это гораздо проще.
Аноним 18/01/17 Срд 15:01:46 #308 №914547 
>>914474
> написал небольшую либу на ванильке, задача которой - строить DOM в новом окне
Нахуя?
Аноним 18/01/17 Срд 15:06:19 #309 №914560 
>>914481
Запрос в момент инициализации контроллера?
Аноним 18/01/17 Срд 15:30:37 #310 №914585 
Аноны, поясните, как развивался веб вкратце? Или где можно об этом почитать/посмотреть?
Например:
1. Тупо были файлики index.html, style.css, script.js, где и была вся логика. Написал, закинул новые на сервак - всё работает. По желанию - модульность в отдельные файлики.
2. CRM, CMS - ????
3. Пишем на фреймворках, собираем галпами и паками, получаем готовую сборку, которую и деплоим

Собственно, проблемы с п.2, т.к. не застал того момента и не особо шарю, как ээти ваши CRM/CMS работают. К чему они относятся вообще?
Аноним 18/01/17 Срд 15:48:40 #311 №914600 
>>914585
Сначала был голый html, даже без css. Все форматирование происходило за счет семантики тегов b, i, p, blockquote и так далее. За стиль оформления отвечал сам браузер.
Потом появился css, который вначале был куда плачевнее нынешнего.
Только позднее, спустя почти пять лет начала существования гипертектста в браузерах появился js, но и тогда он не был призван для какой-то там логики. Он использовался для все того же фактически оформления страниц.

Веб эпохи один ноль, был устроен таким образом, что сайты были в большей степени статичны и наполнялись самими администраторами. Не было никаких комментариев чатов и прочего (суть такой интерактивной динамики, а если где-то и была, то выглядела совершенно иначе и работал на иных принципах), для общения и обсуждения использовались иные каналы связи, не веб.
cms же тогда, если и были то только у крыпных ресурсов, для администрирования и генерации этого самого статичного контента.
Сначала использовали perl, потом из него родился php. И так далее, иные серверные платформы, для написания этих самых штук.
Айти самая динамичная индустрия в мире, тут все всегда развивается очень быстро и парарллельно. Нельзя точно сказать, что в какой-то момент это было, а этого в этот же момент не было. Оно могло быть но осуществлялось иначе.
С тем как росли серверные фреймворки (к слову, php это имено веб-фреймворк, а все ваши симфони запилены уже поверх фрейворка. в то время и до сих пор были и остаются те кто писал сайты и на сишечке), как росли серверные платформы, менялся и веб.
Нет такой статьи которая бы в полной мере охватывала каждую деталь в отдельный момент времени. Читай о каждом факте истории, технологии и прочем по отдельности. Так и придешь к осознанию.
Можешь начать с Тима Бернса Ли. Википедия так и устроена, что из одной статьи можно переходит в иные.
Самообучение наше все.
Аноним 18/01/17 Срд 15:49:28 #312 №914601 
>>914560
да
Аноним 18/01/17 Срд 16:22:54 #313 №914619 
>>914600
Спасибо :3 Прочитал с интересом
Аноним 18/01/17 Срд 16:42:39 #314 №914629 
>>914547
>Нахуя?
Костыль для того, чтобы перекомпоновать/изменить дом с исходной страницы с целью последующего преобразования (сохранение, печать и т.д.)
Аноним 18/01/17 Срд 17:17:49 #315 №914640 
>>914629
iframe чем не угодил?
Аноним 18/01/17 Срд 17:49:51 #316 №914657 
>>914640
Не хотел изменять контент в донорской странице, хотя... Это трезвая идея: создать фрейм 1х1, поместить в необходимом порядке контент во фрейм, и в финале заинжектить скрипт с триггером onload, как тут: http://plungjan.name/SO/testprintiframe.html
Будет работать?
Аноним 18/01/17 Срд 17:54:15 #317 №914663 
>>914657
Пиздец ты поехавший. Есть же data, blob-ы всякие для сохранения/отображения. Есть медиатип для стилей, которые будут использоваться при печати.
Зачем хаки делать?
Аноним 18/01/17 Срд 18:12:15 #318 №914682 
>>914629
> перекомпоновать/изменить дом с исходной страницы с целью последующего преобразования
Йобаный стыд, чем тебе DocumentFragment не угодил, что свой велосипед понадобился?
Аноним 18/01/17 Срд 18:53:07 #319 №914702 
>>914682
>DocumentFragment
Причем здесь DocumentFragment?

Задача следующая:
Выбрать фрагмент исходного дома -> произвести манипуляции над выбранным узлом -> добавить новые элементы -> подготовить к экспорту/печати.

Вопроса как это сделать у меня нет, уже все сделал тупо клонируя ноду и, при необходимости, добавляя новые элементы .appendChild'ом. Но вот анон годную идею подкинул, что вовсе нет необходимости вставлять узел в новое окно, достаточно все это запихать в iframe (который потом нужно удалить, да).
Вопрос изначально состоял в том, как лучше провести тестирование полученного дома, не прибегая к очевидным фантомам. Сейчас, конечно, можно будет вооружиться любым фреймворком, если все содержимое будет в iframe.

>>914663
>Есть же data, blob-ы всякие для сохранения/отображения.
Необходимо не просто сохранить исходный фрагмент. Уже накостылили до меня таких приблуд, типа html2canvas, нужно именно провести определенные манипуляции над имеющимися элементами и добавить новые. CSS @media решает проблему только отчасти.

>Йобаный стыд
>ты поехавший

Ну стыдно немножко, да, но решение под чужие нужды.
 Аноним 18/01/17 Срд 19:05:08 #320 №914708 
Сап анон. Помогите пожалуйста, нужна адаптивная анимация под любую платформу и браузер. Как и с помощью чего писать? Тема такая есть конверт, есть открытка внутри него, и конверт должен открываться.
Аноним 18/01/17 Срд 19:14:43 #321 №914715 
>>914702
Так и зачем тебе вообще отдельный браузерный контекст для этого?
Клонируешь ноду в документфрагмент. Производишь над ней манипуляции. Вставляешь документ фрагмент в отдельный слой (который если хочешь, можешь убрать за границу видимости). К этому слою применяешь css с медиакуарес для печати (чтобы на печать выходил только он). И всё.
Аноним 18/01/17 Срд 19:15:03 #322 №914716 
Кто знает, как вместо ответа сервера json-заглушки ставить?
Например, в jQuery или Angular?
Ведь надо, чтобы http.get вернул содержимое файла, а не реально выполнялся
Аноним 18/01/17 Срд 19:15:36 #323 №914718 
>>914708
>под любую платформу
На моей микроволновке тоже должна проигрываться?

Вопросы учить нормально задавать.
Аноним 18/01/17 Срд 19:16:07 #324 №914719 
>>914716
Переопределить XMLHttpRequest
Аноним 18/01/17 Срд 19:19:25 #325 №914721 
>>914719
Типо того?
var xhr = new XMLHttpRequest();
xhr.open('GET', 'moi_igri.json', false);
xhr.send();
Аноним 18/01/17 Срд 19:41:56 #326 №914734 
>>914721
Что ты написал?
Ты же хотел перехватывать запросы и возвращать поддельные данные, вместо реальеых запросов.
А ты чего делаешь?
Расскажи мне, что делает твой код, по-твоему.
Аноним 18/01/17 Срд 19:43:17 #327 №914736 
>>914721
это называется, что люди пришли в динамический язык и не знают, что такое динамика.
Аноним 18/01/17 Срд 19:55:01 #328 №914745 
>>914715
Я понял тебя, анон.
Но одно из требований - обеспечить возможность сохранения исходных стилей при возможности (опция).
В предложенном тобой способе, когда кусок склонированной ноды остается в одном контексте с донором, будет проблематично реализовать такой механизм.
Можно, конечно, запплаить стиль, при котором будет сокрыто все, кроме склонированного узла, но затем нужно будет запплаить стиль, который бы отображал склонированную ноду, насколько это возможно, похожей на исходную.
К тому же, появляется неиллюзорная вероятность возникновения в одном контексте нескольких элементов с идентичным идентификатором, а это уже не комильфо.
Посему отдельный контекст - не блажь, но необходимость.
Аноним 18/01/17 Срд 20:07:09 #329 №914757 
>>914657
контекст iframe работает по тем же принципам что и window.open (почти).
тоесть ты точно также кимпортируешь склонированную тобою ноду, только в документ не в окне а в ифрейм. инжектишь туда какие-хочешь скрипты, обмениваешься с ним сообщеняиями на здоровье. он же локальный.
Аноним 18/01/17 Срд 20:11:08 #330 №914765 
>>914757
Да-да, спасибо.
Я так и сделаю.
Просто объяснил анону, который предложил в одном оконном контексте производить манипуляции с склонированной нодой и аттачить их в донорский документ, почему такой вариант не подходит.
Аноним 18/01/17 Срд 20:11:59 #331 №914766 
>>914702
> >Есть же data, blob-ы всякие для сохранения/отображения.
> Необходимо не просто сохранить исходный фрагмент. Уже накостылили до меня таких приблуд, типа html2canvas, нужно именно провести определенные манипуляции над имеющимися элементами и добавить новые. CSS @media решает проблему только отчасти.
> html2canvas
Это же вообще скриншотер DOMа. Что-то я совсем потерял представление о твоей задаче
Аноним 18/01/17 Срд 21:07:13 #332 №914803 
>>914734
Не знаю, я с W3School скопировал, там пример на эту тему был.
Ну создаём новый объект запроса и кидаем его в xhr переменную. Потом открываем запрос GET и передаём туда файл, вместо урла, false для чего-то там.
А потом отправляем. Всё.
Аноним 18/01/17 Срд 21:17:08 #333 №914808 
>>914803
Ты сам себе противоречишь. Сначала ты не хотел делать запросы, а теперь делаешь.

>Не знаю, я с W3School скопировал
В общем, удачи.
Аноним 18/01/17 Срд 23:33:49 #334 №914893 
14847716292430.jpg
14847716292591.jpg
14847716292632.jpg
14847716292653.png
>>914057
Зацените помимо лолей, что я пишу на Dojo. Рендеринг шаблонов - на Django. Возможно, кто-то поссыт мне в лицо сейчас, но пока пусть будет так.
Аноним 18/01/17 Срд 23:43:18 #335 №914898 
>>914301
Использование глобальных переменных вместо сервисов во все поля.
$scope.todolist = list;
Аноним 19/01/17 Чтв 00:46:20 #336 №914936 
Аномасы, кто может по срокам сориентировать?
Пилю сейчас для тренировки всякие тудушки и прочие простенькие задачи на ангуляре и реакте.
Сколько должно времени уходить на простое СПА у джуна/мида/сеньора?
Начиная от пустой папки до готового проекта (включая стили и настройку gulp/webpack)?
Очень интересно узнать, какая корреляция между опытом и затрачиваемым временем.
Аноним 19/01/17 Чтв 00:51:35 #337 №914938 
>>914936
>у сеньора
>от пустой папки до готового проекта
Вечность.
Аноним 19/01/17 Чтв 01:38:44 #338 №914949 
что можете сказать про этот сайт https://learn.javascript.ru/ ? в воркаче его советуют для вкатывания
Аноним 19/01/17 Чтв 02:00:24 #339 №914952 
>>914949
Godno.
sageАноним 19/01/17 Чтв 02:19:55 #340 №914958 
>>914949
Govno
Аноним 19/01/17 Чтв 02:53:42 #341 №914969 
>>914949
Гавно.
Аноним 19/01/17 Чтв 02:58:13 #342 №914971 
>>914949
Не слушай этих долбоебов, отличный учебник.
Аноним 19/01/17 Чтв 04:22:37 #343 №914981 
Здравствуйте, я полагаю мне к вам.

Хочу сделать простую поделку. Нужно генерить разноцветные пиксели и двигать их в сторону (как будто прогресс бар) Как это сделать лучше всего. Канвасом?
Аноним 19/01/17 Чтв 08:13:56 #344 №915007 
>>914981
Можно сделать так, как тут, на обычных дивах
http://getbootstrap.com/components/#progress
Аноним 19/01/17 Чтв 08:23:34 #345 №915009 
Вопрос от ньюфага по nodejs.
В общем с помощью request перебираю адреса сайтов. Проблема в том что нода возвращает мне статус кода не тот который в браузере. Например отдаёт 503, вместо 200. А при следующем запуске может и 200 отдать. Поставил уже и UA и timeout (я не могу понять он работает или нет).
Вот код https://jsfiddle.net/atd51zed/
В гугле предлагают setTimeout поставить, но у меня идёт просто задержка 2сек (например) и потом опять выплёвывает всё разом. Еще прочитал что якобы синхронные действия мешаю с асинхронными. В общем помогите.
Аноним 19/01/17 Чтв 08:27:20 #346 №915010 
>>915009
А вообще мне нужно перебрать эти страницы и на каждой поискать нужный мне элемент. Если нашел -> адрес в один массив, если нет -> в другой массив.
Но запуская скрипт через раз находит элемент на сайте (хотя он там есть).
Аноним 19/01/17 Чтв 08:47:14 #347 №915012 
>>914357
Сути не меняет, добавление константы, перевод в строку и т.д. одинаковы для всех. Удаление хотя бы одной тудушки приводит к дублированию айди при следующем добавлении (кроме случая, когда удалённая была последней в массиве). А ещё ты нолик лишний приписал, по-моему, оно же будет 01, 11, 21, 31 и т.д.

>>914303
Не очень понял, что ты этим хотел сказать и как это противоречит (если должно было) моему посту. Где-то туду помечается выполненным и удаляется из списка. Когда и кем конкретно - не так уж важно.
Аноним 19/01/17 Чтв 08:58:51 #348 №915016 
>>911269
Неосилятор, плиз
Аноним 19/01/17 Чтв 09:00:37 #349 №915018 
>>914145
Погугли, ленивый ты пидор.
Аноним 19/01/17 Чтв 10:17:35 #350 №915040 
>>915010
Попробуй делать повторный запрос через несколько секунд при ошибке. Возможно, просто какой-нибудь ngx_http_limit_req стоит на сервере
Аноним 19/01/17 Чтв 12:06:01 #351 №915078 
>>915040
>>915010
>>915009
В общем решил, кому интересно (судя по всему всем похуй)
https://jsfiddle.net/3mh651pw/
Аноним 19/01/17 Чтв 12:11:29 #352 №915082 
>>914981

нахуя? length div изменяешь в CSS, вот тебе и вся любовь
Аноним 19/01/17 Чтв 12:41:17 #353 №915093 
>>915082
>length div изменяешь в CSS
Ты обпрагромировался.
Аноним 19/01/17 Чтв 14:51:02 #354 №915157 
>>915078
Другой тупой вопрос. Я Excel файл конвертирую в json. Мне сам json файл не нужен (я ставлю output в null, так в документации написано), а нужны данные. Данные находятся в result. Я не могу подобраться к ним вне функции. С глобальными переменными не работает.
xtj({
input: "./test.xlsx",
output: "./test.json"
}, function(err, result) {
if (err) {
console.error(err);
} else {
console.log('done');
}
});
Аноним 19/01/17 Чтв 15:01:08 #355 №915164 
>>915157
https://learn.javascript.ru/promise
Аноним 19/01/17 Чтв 15:56:51 #356 №915205 
>>911262 (OP)
https://jsfiddle.net/1ksfc94r/embedded/result/
Кто-нибудь может добавить выбор амплитуды, фазы и анимацию?
Аноним 19/01/17 Чтв 16:19:54 #357 №915223 
>>915205
Чур не я.
Аноним 19/01/17 Чтв 16:49:03 #358 №915238 
>>915007
>>915082
Спасибо за отклик, но я загорелся более продвинутую вещь сделать, за одно освоить пару новых для себя вещей.

В общем на словах все должно быть так примерно

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

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

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

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

Буду ща курить код
http://www.goodboydigital.com/pixijs/bunnymark/
можно сказать вдохновило меня на то, что бы запилить что-то своё.
Аноним 19/01/17 Чтв 19:09:33 #359 №915293 
>>915238
А не проще ли справа генерить столбик и ничего никуда не двигать?
Аноним 19/01/17 Чтв 19:58:09 #360 №915316 
>>915293
Нет, двигать надо. Не важно как проще или логичнее. Важно, что можно двигать. Можно, конечно, и не двигать, но тот факт, что есть такая возможность подвигать, непременно означает, что ею необходимо тотчас же воспользоваться. И подвигать. Двигай, если ты хочешь двигать. Подвинь это еще раз, и еще.
Аноним 19/01/17 Чтв 20:27:36 #361 №915330 
>>915205
Тут анимация.
https://jsfiddle.net/1ksfc94r/1/
Вот тут анимация.
Частоту бы менять...
Аноним 19/01/17 Чтв 21:05:24 #362 №915358 
14848491242820.png
14848491242821.png
Тред по вёрстке не нашёл, спрошу тут. Один хер на ангуляре пилю.
Сделал колонку на бутстрапе, пока было по одной глиф-иконке - всё нормально было. Решил добавить к одной из них счётчик - вышла хуита и всё разъехалось.

Код такого плана
http://pastebin.com/7vhXj3qe

Хочу сделать как на втором пике. Чтобы иконка почты никуда не уезжала, а просто у неё в углу был счётчик
Аноним 19/01/17 Чтв 21:20:25 #363 №915373 
Вроде такого https://jsfiddle.net/qfobycd9/
>>915358-кун
Аноним 19/01/17 Чтв 21:37:26 #364 №915383 
>>915358
Ваших бутстрапов не знаю, вот как в вузе учили, так и пишу. Значит, так:
<div id="buttons-wrapper" style="position: relative;">
<div id="buttons-greenbutton" style="clear: both; width: 100%; border-radius: 5px; background-color: green; text-align:left">+</div>

<div id="buttons-bluebutton" style="clear: both; border-radius: 5px; background-color: blue; text-align:left"><img src="convertique.png" style="float:left" /> <span style="background-color:white; border-radius: 10px; font-size:10px; font-weight:bold" id="buttons-bluebutton-number">1488</span> </div>
<div id="buttons-redbutton" style="clear: both; width: 100%; border-radius: 5px; background-color: red; text-align:left">&#215;</div>
</div>
Аноним 19/01/17 Чтв 21:54:38 #365 №915394 
14848520789230.png
>>915358
А, если счетчик в углу, тогда всё проще
https://jsfiddle.net/bjc8uuvL/
Аноним 19/01/17 Чтв 22:06:25 #366 №915403 
14848527857580.jpg
14848527857651.jpg
14848527857692.jpg
14848527857723.jpg
>>915383
>>915394
Спасибо, помогло!
Аноним 19/01/17 Чтв 22:38:29 #367 №915423 
http://jug.ru/2016/09/bugayenko-west/
Аноним 19/01/17 Чтв 22:45:26 #368 №915427 DELETED
>>911262 (OP)
Жоэс для питухов, бббггеее. Петушиный езык для гамаебафф, хехе.
Аноним 19/01/17 Чтв 23:04:50 #369 №915439 
>>911350
не show а fadeIn
Аноним 20/01/17 Птн 03:19:57 #370 №915519 
>>915293
Но тогда не будет никакой собственно анимации.
Аноним 20/01/17 Птн 09:22:03 #371 №915578 DELETED
>>915427
> Отправлено с помощью жс
Аноним 20/01/17 Птн 10:16:48 #372 №915592 
>>912285
>Назови хоть одну книгу о том, как красиво писать код на javascript
Я понимаю, что интеллект среднестатистического жабоеба требует наличия руководства, изложенного в книжном формате, даже для таких простых вещей, как поход в туалет, однако в жс коммьюнити достаточно свода кратких рекомендаций для обретения навыка написания семантически ясного и синтаксически верного кода.

Линкрелейтед: https://github.com/ryanmcdermott/clean-code-javascript
Аноним 20/01/17 Птн 10:31:54 #373 №915599 
14848975141840.png
Помогите чем это лечить?
Аноним 20/01/17 Птн 10:36:38 #374 №915600 
>>915592

thanks, godno

>>915599

<meta charset='utf-8'>
sageАноним 20/01/17 Птн 10:37:33 #375 №915601 
>>915599
Это генетическое, не лучится.
sageАноним 20/01/17 Птн 10:38:05 #376 №915603 
>>915601
>не лечится
Аноним 20/01/17 Птн 10:41:13 #377 №915604 
14848980737600.gif
>>915601
>>915603
То сладкое чувство, когда мусор сам обсерается, но пытается не подскользнуться на своем говне))
Аноним 20/01/17 Птн 11:00:32 #378 №915607 
В общем наворовал функций по всем справочникам каким только мог. ПОдскажите почему не получается анимацию в данном примере получить?

Я же вроде как обновляю холст после отрисовки каждого столбца.

https://jsfiddle.net/s1mvm836/
Аноним 20/01/17 Птн 11:19:48 #379 №915609 
>>915607
>while (new Date() < ms){
>}
Никогда так не делай. ЖС асинхронен, линейный синхронный синхронный код с задержками в нём писать нельзя. И не пытайся пока. setTimeout, setInterval, коллбэки и промисы (что, по сути, то же самое). Потом про промисы через генераторы узнаешь, ES2048 выйдет с async/await, станет проще.

А по коду: браузер не прерывается на отрисовку страницы во время твоего лупа. То есть, что-то ты там может и меняешь, но браузер показывает лишь два кадра: "до" и "после" лупа.
Аноним 20/01/17 Птн 11:53:15 #380 №915619 
>>915607
Вот типа так. https://jsfiddle.net/s1mvm836/1/

Только оно всё лагает. С канвасом не работал, размуно ли каждые 2 мс вызывать ctx.putImageData — не знаю. Видимо, нет.
Аноним 20/01/17 Птн 12:05:03 #381 №915624 
>>915619
>>915607

ты же вроде там рисуешь прогресс бар?

вангую тебе нужно определить кол-во итераций на один процент и юзать рекурсию, "спать" там ничего не должно
Аноним 20/01/17 Птн 12:10:59 #382 №915628 
>>915624
Рекурсия ничем не отличается от лупа. Нужно возвращать контроль браузеру, иначе толку никакого, промежуточные шаги пропадут.
Аноним 20/01/17 Птн 13:25:04 #383 №915676 
14849079041820.png
Делаю задачку из учебника определение числа на четность при помощи рекурсии и чтот оно мне хуйню пишет.
Сама функция, вижу же — пашет, а вот с получением результата из неё проблема. Где я накосячил-то?
Аноним 20/01/17 Птн 13:31:40 #384 №915682 
>>915628

если юзать рекурсию с setTimeOut, то всё норм, она вернёт коллбэк как отресуется пикселями - скажем 1%, и будет ждать нового вызова для отрисовки следущей порции процентов, браовзер при этом не остановится.
Аноним 20/01/17 Птн 13:33:19 #385 №915684 
>>915682
>браузер
Аноним 20/01/17 Птн 13:35:17 #386 №915687 
14849085176890.png
>>915676
Аноним 20/01/17 Птн 13:36:55 #387 №915689 
>>915624
>>915628
>>915682

Блин как же тут все не для людей, вот на паскале 20 лет назад прогал и было всё изи. Прога не прерывалась если ты не хотел, если хотел выводить всё динмамически то и было все збс. Потом меня эта хуйня бесила в пхп, что нельзя получать динамически ответочку от скрипта, а только результат, и тут ща это же вижу БЛЯДЬ НУ ЗА ШТО
Аноним 20/01/17 Птн 13:40:12 #388 №915690 
>>915687
Т.е. передавать строку с одной функции в другую — нельзя?
Аноним 20/01/17 Птн 13:44:46 #389 №915691 
>>915689
> не для людей
Не осилил асинхронщину? Страдай
Аноним 20/01/17 Птн 13:46:04 #390 №915692 
У тебя рекурсивная функция просто не была замкнута.
В пре-финальном шаге ты просто вызывал функцию, после чего она возвратила (ф-ции в JS всегда что-то возвращают, так уж повелось) undefined. А уже в финальном ты вернул результат, но в никуда.
Аноним 20/01/17 Птн 13:46:48 #391 №915693 
>>915690
>>915692
Аноним 20/01/17 Птн 13:51:06 #392 №915695 
>>915692
Чтот я непонял.
У меня в isEven стоит ретурн, который даёт функции check число и по идее же должен return фунции чек принимать в себя и тут же отдавать в console.log в самом конце.
Разве не так всё?
Аноним 20/01/17 Птн 13:53:09 #393 №915696 
>>915695
Ладно, если в двух словах:
>check(n)
следует заменить на:
>return check(n)

Понимание придет, когда сам нагуглишь, зачем так делать.
Аноним 20/01/17 Птн 13:57:18 #394 №915697 
>>915696
Т.е. то, что я постом выше написал — вызывается только один раз, а потом, само в себе, оно вызывает себя уже без ретурна, и по этому оно не передает значение в функцию isEven?
Аноним 20/01/17 Птн 14:06:01 #395 №915701 
>>915697
> вызывается только один раз, а потом, само в себе, оно вызывает себя уже без ретурна, и по этому оно не передает значение в функцию isEven?
>оно не передает значение в функцию isEven
Вернее сказать: не возвращает значение.
А в целом правильно размышляешь.
Итого имеем, твоя исходная функция isEven(Number) вернет корректное значение только при аргументах 0 и 1, во всех остальных случаях будет возвращено undefined.
Аноним 20/01/17 Птн 14:09:10 #396 №915702 
>>915701
> вернет корректное значение только при аргументах 0 и 1
И сделает это только потому, что они в самом начале проверяются, когда для них описано всё. Спасибо.
А это не считается за какой-то костыль или неудобство, которого в других языках нет?
Аноним 20/01/17 Птн 15:52:40 #397 №915731 
>>915619
>агает. С канвасом не работал, размуно ли каждые 2 мс вы
А какие есть альтернативы канвасу? Как вообще в js рисовать?
Аноним 20/01/17 Птн 17:05:37 #398 №915774 
14849211380010.jpg
Мальчики, ккой редактор используете? Кто еще на саблайме сидит? Кто на атом, VS code пересел?
sageАноним 20/01/17 Птн 17:15:01 #399 №915779 
>>915774
Привет, Богдан, покажи банан.
Аноним 20/01/17 Птн 17:16:30 #400 №915780 
>>915779
Я так и знал, что первым ты ответишь.
Аноним 20/01/17 Птн 17:42:53 #401 №915788 
SVVAG
Аноним 20/01/17 Птн 17:43:10 #402 №915789 
>>915731
>>915788
Аноним 20/01/17 Птн 17:57:03 #403 №915797 
А на вашем этом JS можно писать приложения под десктоп?
Аноним 20/01/17 Птн 17:59:16 #404 №915799 
>>915797
А ты знаешь какие-то тьюрринг полные языки программирования, на которых нельзя?
Аноним 20/01/17 Птн 18:00:47 #405 №915801 
>>915799
АЛГОЛ? Ну я скорее про удобство.
Аноним 20/01/17 Птн 18:21:00 #406 №915818 
>>915797

http://electron.atom.io/
Аноним 20/01/17 Птн 19:13:43 #407 №915847 
>>915799
Брейнфак?
Аноним 20/01/17 Птн 19:26:13 #408 №915860 
>>915797
Конечно, можно. Вот анон годноту пилит для нас.
https://www.youtube.com/watch?v=diqfiq_hH-Y
Аноним 20/01/17 Птн 19:28:43 #409 №915865 
14849297231650.png
>>915689
>>915691

вопрос, если я правильно понял, в ЖС каждое объявление функции запускает отдельный тред с задачей, но при этом на это не выделяется особый процесс в ЦПУ, но в то-же время эти треды работают как бы параллельно, как это реализовано, и чем это лучше/хуже тру параллельных вычислений?

// тред 1

function t1() {...}

// тред 2

function t2() {...}
Аноним 20/01/17 Птн 19:30:47 #410 №915867 
Привет, аноны. Нужен ваш совет касательно тестового задания. Предложили написать небольшое SPA (ng-repeat, несколько фильтров к нему и "хороший внешний вид") "на чём угодно", но за 1.5 дня. Типо симуляция будто заказчик дал задание и ему через 2 дня надо хотя бы рабочий эскиз показать, который потом уже развиваться будет. Т.е. большее внимание уделить вёрстке и UI, а что под капотом - важно, но менее. Он, сделал на 1м ангуляре, не спал 25 часов, нафигачил 80-90% функционала. Что успел - скинул.

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

А сейчас ВНЕЗАПНО переписать под 2ю версию. Зачем? Что должно это тестовое показать? Я, вроде, уже показал свои навыки и свой максимум, насколько это возможно. Какое исправление косяков и какое переписывание в ТЕСТОВОМ ЗАДАНИИ? Что это покажет?

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

Компания разрабов клёвая, я б поработал, но КОМПАНИЯ, при этом, никаких ништяков не обещала, даже про зп речи не зашло, зато толсто, но в шутку типа, спросили работаю ли я от звонка до звонка обычно или есть варианты. И сказали, что у них офис 24/7 открыт и можно если что - ночью прийти поработать. Мне кажется это самый херовый "пряник" из всех возможных.

Посоветуйте, что думаете? Переписать/закрыть баги или плюнуть и пилить собственные проектики?
Аноним 20/01/17 Птн 19:34:31 #411 №915869 
Создателям сайтов за 1 сек сразу скажу, что я - новичок и действительно долго проебался с этими вашими материал-дизайнами, чтобы всё хотя бы относительно невырвиглазно смотрелось.
Плюс настройка вебпака с плагинами.
Собственно, я ищу место, где можно начать учиться на готовом проекте и фиксить мелкие баги, т.к. в том же ангуляре пока опыта мало, а не херачить SPA соло. Может, возникло недопонимание?
>>915867
Аноним 20/01/17 Птн 19:35:34 #412 №915871 
>>915865
нет, ты все неправильно понял.
тут нет параллельных вычислений. они все последовательны, но могут быть ассинхронны. асинхронны это значит, что если в коде у тебя вызов функций идет одна за другой, это не значит, что они выполнятся именно так. какая-то из них может выполнится хоть завтра, или раньше той, что объявлена перед ней.
но ты это все сам контролируешь. нет никакой магии.



Аноним 20/01/17 Птн 19:42:17 #413 №915875 
>>915867
> Зачем? Что должно это тестовое показать?
На сколько ты быстро ориентируешься в технологиях/подходах. По сути твой профессионализм.
> Мне кажется это самый херовый "пряник" из всех возможных.
Это значит что им пофиг на твой график, хоть в ночь можешь работать а днем спать.
Я б рискнул на твоём месте. А там потерся бы месяца 3 - не понравится то и свалить всегда можно.
Аноним 20/01/17 Птн 19:46:33 #414 №915876 
>>915867
Вот честно, я бы не стал бы переписывать и написал им все как было изначально уговорено: прототип, на чем угодно, не стремно выглядящий.
Сделал - сделал. Недостатки сказали, спасибо, учту на будущее, все равно это тестовое.
Так же обговорил бы вилку зарплат, подхожу/не подхожу. И сказал что поработать я могу в принципе когда угодно, т.к. кодить люблю, но овертаймы должны оплачиваться.
Ну и про баги и перепись на 2 версию: если подразумевается испыталка (оплачиваемая естественно) сказал бы что сделаю на ней.
Если бы послали - для себя бы допилил и выложил в качестве поделия собственного.

Это лично мое мнение
Аноним 20/01/17 Птн 20:32:22 #415 №915892 
>>915871

ок, я читаю сейчас релейт http://www.sohamkamani.com/blog/2016/03/14/wrapping-your-head-around-async-programming/

т.е. сама ЖС не может создавать процессы в ЦПУ у неё всегда один тред/процесс, но она внезапно может создавать стек с очередью к другим рантаймам, которые могут это делать. т.е. жс вроде как получается неким таким диспетчером, который раздаёт задачи в другие среды выполнения и регулярно смотрит статус.

что, получается ЖС это универсальная обёртка(АПИ) для всех языков что-ли, и она сама вообще ничего не делает на процессоре?
Аноним 20/01/17 Птн 20:39:44 #416 №915894 
>>915892
Ни один язык, кроме машинного, не может создавать какие-либо процессы. Это всегда делает окружение.

>у неё всегда один тред/процесс,
и это тоже не верно.
js выполняется в разных окружениях. в некоторых из них есть треды. в других есть кластеры процессов.

Аноним 20/01/17 Птн 20:40:20 #417 №915895 
>>915892
>вообще ничего не делает на процессоре?
На процессоре ни один в мире язык ничего не делает. Процессор твой понимает только машинный код. Ты откуда вылез такой неуч?
Аноним 20/01/17 Птн 20:41:29 #418 №915897 
>>915892
> ЖС это универсальная обёртка(АПИ) для всех языков что-ли, и она сама вообще ничего не делает на процессоре?
Чет в голос проиграл.
Аноним 20/01/17 Птн 20:42:47 #419 №915898 
>>915895
>>915897
>>915894

спакуха, я знаю про ассемблер. не охота усложнять вопросы такими очевидными деталями.
Аноним 20/01/17 Птн 20:44:13 #420 №915900 
>>915898
Ассемблер тоже не выполняется на процессоре.
Аноним 20/01/17 Птн 20:46:04 #421 №915901 
>>915898
Для тебя они не очевидны ни разу.
Какой там по твоему язык умеет создавать треды или процессы? Си? А вот нхуя он не умеет, он дергает апи операционной системы для этого.
Что он там у тебя умеет, числа складывать? А вот хуй, не умеет он этого - для сложения чисел компилятор генерирует машинный код. А си твой нихуя не делает, кроме как описывает Алгоритм. Как и любой другой язык, js в том числе.
Аноним 20/01/17 Птн 21:03:21 #422 №915911 
>>915860
Ты же только что этот ролик записал, лел
Зачем писать о себе в третьем лице?
Аноним 20/01/17 Птн 21:07:08 #423 №915915 
>>915898
> спакуха, я знаю про ассемблер
Поэтому до вебассембли еще очень далеко. А ты хуйню несешь.
Аноним 20/01/17 Птн 21:11:06 #424 №915918 
>>915894
>js выполняется в разных окружениях

меня нода и клиенты интересуют, там вроде всё как раз так, как я и написал:

ЖС типо рассылает задачи из своего окружения в разные другие окружения, которые могут на своё усмотрение распараллелить задачу. вроде как ЖС важен только статус done & result от них и что бы event loop летала, сама ЖС нехуя не делает кроме этого

>>915900

хорошо, байткод

>>915901

я не пытаюсь устроить языкосрачь, х/з нужно погуглить какие языки могут открывать треды/процессы. я пытаюсь понять ЖС на сервере и на клиенте.
Аноним 20/01/17 Птн 21:13:28 #425 №915920 
>>915918
>какие языки могут открывать треды/процессы
Никакие не могут. У тебя проблемы с понимаем принципов работы вычислительных машин.

Аноним 20/01/17 Птн 21:23:33 #426 №915929 
я хочу, чтоб у меня была кнопка, которая записывает состояние комаонента(hui.state) в файл и при перезагрузке страницы брало данные оттуда, а не через getInitialState.
реакт так умеет? Подскажи, анон. Погуглил, но нашел решения для серверов, а мне надо локально. Типа, лист ту ду чтоб сохранял задачи по кнопке или когда я закрываю страницу, а не проебывал.
Аноним 20/01/17 Птн 21:28:50 #427 №915931 
>>915929
localStorage
Аноним 20/01/17 Птн 21:35:56 #428 №915937 
>>915920
>какие языки могут открывать треды/процессы
>Никакие не могут.

ок, погуглил, получается что процесс один на ядро ЦПУ, но в нём спаунятся треды с задачами, которые пушатся в РАМ параллельно. это как минимум могут C и C++. ЖС как раз оправляет в эти процессы задачи и ждёт решения. сама она кроме петли и стека с задачами, никаких тредов в своём процессе не создаёт?
Аноним 20/01/17 Птн 21:48:57 #429 №915943 
>>915937
> это как минимум могут C и C++
Нет, они этого не могут.
Они дергают для этого апи операционной системы.

Ты почему такой глупый? Языки не умеют ничего, кроме описания алгоритмов.
Аноним 20/01/17 Птн 21:55:13 #430 №915947 
>>915931

разве это не создает локальный объект в браузере? Я бы хотел в отдельный файл записывать. может я просто не понимаю, как оно работает
Аноним 20/01/17 Птн 21:58:52 #431 №915951 
>>915947
Ты хочешь записывать файлы на клиенте? Ты прежде чем задаваться такими вопросами задумался о том, что если бы была такая возможность, то любой бы сайт мог создавать у тебя на компьютере фалы и читать их? Это было бы нормально по-твоему?
Аноним 20/01/17 Птн 22:00:16 #432 №915953 
>>915947
localStorage выполняет твою задачу. После закрытия вкладки то, что ты в него сохранишь останется в нем и загрузится снова, когда ты вновь откроешь вкладку. Он для того и сделан.
Аноним 20/01/17 Птн 22:02:26 #433 №915954 
>>915951
если бы это было реализовано как загрузка файла, то еще как.

>>915953
хорошо, спасибо, анон. Пойду лопатить свои сетстейты в сторажи.
Аноним 20/01/17 Птн 22:05:55 #434 №915959 
>>915954
>загрузка файла

https://github.com/rndme/download
Аноним 20/01/17 Птн 22:09:17 #435 №915962 
>>915954
>если бы это было реализовано как загрузка файла, то еще как.
Тогда это не запись в файл. Ты можешь на здоровье, генерировать файл, скачивать его, а потом заново загружать. Но это не запись в файл.
Аноним 20/01/17 Птн 22:21:19 #436 №915968 
>>915943
>Нет, они этого не могут
>Они дергают для этого

лол анус себе дёрни, заносчивый пидорг. я тебе и ничего не говорил, про то как это реализовано. это имхо понятно, что все низкоуровневые ЯП это "обёртка" вокруг ядра системы - а ЖС внезапно обёртка вокруг этих ЯПов.
Аноним 20/01/17 Птн 22:25:48 #437 №915970 
>>915968
ЖС просто один из этих ЯП, а не обертка вокруг них
Аноним 20/01/17 Птн 22:27:42 #438 №915972 
>>915968
Ты дурачок.
Аноним 20/01/17 Птн 22:39:25 #439 №915975 
>>915972

что порвался то? всё верно же. с хуяли тогда все ключевые компоненты ноды написаны на си и крестах?
Аноним 20/01/17 Птн 22:43:27 #440 №915976 
>>915975
Я же говорю - ты дурачок.
Аноним 20/01/17 Птн 22:54:06 #441 №915980 
>>915976

сука не беси меня аутист. если сказать по делу нечего, нахуй огрызаешься? молчал бы в тряпочку или нагуглил бы пруфов своим вскукарекам.
Аноним 20/01/17 Птн 22:57:01 #442 №915982 
>>915980
Пруфы того что ты дурачок - все твои предыдущие сообщения.
Аноним 20/01/17 Птн 22:58:57 #443 №915983 
>>915982

толсто, иди нахуй.
Аноним 20/01/17 Птн 23:02:04 #444 №915986 
>>915983
Ты еще и обдвачевался в край, дурачок.
Аноним 20/01/17 Птн 23:08:40 #445 №915991 
>>915986

сука, аутист, вот скажи, нахуя ты такой аутист. зойчем ты доебался? я уже понял где я заблуждался насчет ЖС. не ясно, от чего тебе пригорает так. может ты просто тупой неосилятор с проекциями?
Аноним 20/01/17 Птн 23:23:32 #446 №916000 
>>915962
в чем вообще проблема изменять локальный json файл? он же локальный.
>>915954
>>915953
нихуя не работает, кстати. Создается ключ, но сразу после ре-рендера ДОМ древа он теряет свое значение(console.log(localStorage.getItem('key')) выдает null). Может есть таки вариант изменять какой то локальный, для приложения, json или еще что?
Аноним 20/01/17 Птн 23:40:47 #447 №916009 
>>916000
>нихуя не работает, кстати
Значит ты что-то делаешь не так. Локалсторадж персистентный.

>в чем вообще проблема изменять локальный json файл? он же локальный.
Ну ты не против будешь, если когда та зайдешь на мой сайт, я тебе начну создавать json файлы на компе? Они же локальные у тебя, что в ыэтом такого?
Аноним 21/01/17 Суб 00:09:00 #448 №916020 
>>916009

localStorage.setItem('key', 'value')
console.log(localStorage.getItem('key')) // value

{код реакта...

onClick() { // событие вызывает новый рендер всего документа
...
console.log(localStorage.getItem('key')) // null

}


про второе, я имею ввиду локальный файл, кот.существует только в директории сайта/аппа. Т.е если он у тебя на сервере, он твой же жсон и редактирует. Похапе же так умеет, а жс нет что ли?
Аноним 21/01/17 Суб 00:10:55 #449 №916023 
>>916020
закрывающее } для кода реакта проебал после второго консольлога, но и так понятно.
Под "код реакта" я имею ввиду, внутри класса. hui extends react class etc
Аноним 21/01/17 Суб 00:15:37 #450 №916026 
>>916020
>про второе, я имею ввиду локальный файл, кот.существует только в директории сайта/аппа. Т.е если он у тебя на сервере, он твой же жсон и редактирует. Похапе же так умеет, а жс нет что ли?
Ты несешь какую-то чушь.
На клиенте нет никаких папок с твоим сайтом\аппом.

Аноним 21/01/17 Суб 00:18:10 #451 №916028 
>>916020
Ты вообще не умеешь в дебаг или тестировать? Ты хочешь спорит о том, что ошибка не у тея где-то в коде, а браузер себя ведет неправильно? Ты серьезно?

Открой консоль здесь в этом треде.
вбей, блядь туда localStorage.setItem('key', 'value') и нажми enter. теперь закрой вкладку со с этим тредом. и открой снова.
и вбей в консоль localStorage.getItem('key')
Что блядь? Работает? Вот нихуя себе.

Аноним 21/01/17 Суб 00:21:58 #452 №916030 
Тупые блядью Тупые. Одни идиоты. Откуда они сука лезут.
>Почему я не могу писать/читать файлы из браузера?
>ЖС обертка над другими ЯП!
>локальные фалы как на сервере!
>директория с сайтом на клиенте!

Пиздец блядь.
Пиздец, нахуй вы живете.
Аноним 21/01/17 Суб 00:27:11 #453 №916033 
14849476315140.png
Пацаны, помогите ньюфагу с программой, в которой собственно пишется код. Выбрал атом, но в нем почему-то нет всплывающих окон. Можно сделать так чтобы были? Не гоните ссаными тряпками, только начал разбираться.
Аноним 21/01/17 Суб 00:28:21 #454 №916035 
>>916033
ААААААА БЛЯДЬ
Аноним 21/01/17 Суб 00:37:25 #455 №916039 
>>916033
Лолшто, какие всплывающие окна? Ставь нормальный Саблайм 3 и не еби моск.
Аноним 21/01/17 Суб 00:38:00 #456 №916040 
>>916035

Ну ладно, ну че ты, может он толстенький.
Аноним 21/01/17 Суб 00:43:35 #457 №916043 
14849486160290.png
>>916039
Ну я делаю ран скрипт и не работает. Должно окно выскакивать такое. Я вообще не шарю нифига, надо определиться с программой, где все это делать, можете порофлить с того какой я даун, но ответ дайте. Чтобы уровнять это все скажу, что я инженер, работаю уже 3 года и шарю кадовские программы и вы можете у меня спросить что-то тоже.
Аноним 21/01/17 Суб 00:44:27 #458 №916045 
>>916026
лол. На сервере есть папка с сайтом, в ней файл, кот.содержит дату. Те же юзернеймы и пароли. Логин и пароль передаются в файл при регистрации похапе запросом. Или ты прав и сервер содержит голый сайт, а логин и пароль - локалстораж браузера? Вот и я не думаю.

Я хочу иметь тоже самое в локальной версии, но без пхп. Жс редактирует жсон/что угодно.
Такие дела.

>>916028
И че ты такой агрессивный и остроумный? Ты специально не читаешь мой текст? пишу тебе код словами:

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

Если же я пытаюсь прочитать ключ внутри класса(для тебя:
var App = React.createClass(
(какой то код и функции);
onClick() {
добавить элемент, создание которого вызывает перерисовку всего компонента;
и если уже тут консольлог (localStorage.getItem('key'))
который динамически перерисовывается, то значение null после первого перерендера. Ключ остается, а его значение становится "". Я бы записал тебе видео, да не хочу еще пол часа на создание шебм тратить, фома.
Аноним 21/01/17 Суб 00:47:06 #459 №916046 
>>916043
алерт создает компонент window, а ИДЕ имеет только консоль. Твои всплывающие окна будут при нажатии кнопки ф6 в любом браузере на странице, куда ты добавишь код.
Аноним 21/01/17 Суб 00:48:42 #460 №916048 
>>916046
А в программах и не проверить никак работает это или нет?
Аноним 21/01/17 Суб 00:52:39 #461 №916050 
>>916048

чем тебе браузер не программа? жс код априори направлен на браузеры. Создай себе шаблонный html и проверяй сколько хочешь.
Аноним 21/01/17 Суб 00:53:50 #462 №916052 
>>916050
Не умею. Ладно, буду ковыряться дальше сам.
Аноним 21/01/17 Суб 00:59:34 #463 №916055 
>>916052
1.Открываешь хром
2. Нажимаешь F12
3. Выбираешь вкладку Консоль/Console
4. В строчку ввода вбиваешь свой алёрт
6 Нажимаешь Enter
7 ??????
ПРОФИТ!
Аноним 21/01/17 Суб 01:00:05 #464 №916057 
>>916045
>локальной версии
В каой блядь локальной версии, дебил.
Браузеру поебать откуда ты загрузил код. ограничения для всех одинаковые.
Иди нахуй просто.
Аноним 21/01/17 Суб 01:01:34 #465 №916059 
>>916045
> т.к этот код находится до создания класса реакта.
Пиздец.
Спешите видеть. РЕАКТ НЕ ПОДДЕРЖИВАЕТ ЛОКАЛ СТОРАДЖ
Аноним 21/01/17 Суб 01:02:28 #466 №916060 
>>916045
>шебм
Нахуй мне твои вебм?ты язык выучи, а не фреймворк, чтобы понимать в чем твоя проблема, олень.
Аноним 21/01/17 Суб 01:10:32 #467 №916066 
>>916060
так ты бы объяснил, раз умный такой.
Аноним 21/01/17 Суб 02:15:58 #468 №916088 
Станет ли изучения JavaScript неактуальным иза TypeScript?
Аноним 21/01/17 Суб 05:51:14 #469 №916136 
>>916088
нет, ведь макаки не могут в статическую типизацию поэтому они и сидят на жс
Аноним 21/01/17 Суб 08:11:50 #470 №916152 
>>916136
А зачем она?
Аноним 21/01/17 Суб 09:25:45 #471 №916158 
>>916136
Проиграл. Что в нее уметь, дебил?
Скорее наоборот, перекатывальщики не в состоянии осилить динамический язык с неявной типизацией.
Аноним 21/01/17 Суб 09:35:30 #472 №916159 
>>916158
Двачую
Аноним 21/01/17 Суб 10:05:20 #473 №916163 
>>916158
> Скорее наоборот, перекатывальщики не в состоянии осилить разрабатывание очка ржавым дилдаком.

Пофиксил наркомана.
Аноним 21/01/17 Суб 10:39:14 #474 №916172 
>>916163
По себе не судят.
Аноним 21/01/17 Суб 13:39:42 #475 №916253 
>>915911
Типа я - не он.
Один из подписонов, которому нравится, что делает этот анон.
Аноним 21/01/17 Суб 14:11:31 #476 №916284 
>>915860
два чая electron-ному анону. То, что надо.
Аноним 21/01/17 Суб 14:28:06 #477 №916295 
14849980863280.jpg
>>911262 (OP)

го в рулетку, я создал сервис https://dev.videochat.red/room/ruAnonymous
Аноним 21/01/17 Суб 18:34:11 #478 №916415 
Посоны, хочу сделать веб интерфейс для прибора на арме с линухом. Необходим вывод графика с частотой сбора 20мс, порядка 10 минут в реальном времени, т.е. 30000 точек. Насколько это безумная идея? Какой стек использовать? Из просмотренных жс либ, только plotly отдаленно напоминает то, что я хочу.
Хотелось бы, чтобы все это не тормозило. Что вы бы посоветовали использовать? Я склоняюсь к реакту и стековерфлоу дривен девелопмент. Насколько сырой дартангуляр? Эльм для игрушесных проектов?
Аноним 21/01/17 Суб 19:07:10 #479 №916433 
>>916415
Ты для ссаного графика фреймворк хочешь юзать, что ли?
сколько стоит и кто бы мог сделать? Аноним 21/01/17 Суб 19:17:20 #480 №916437 
14850154405390.png
Нужна программка. Сначала думал может на С# но потом решил что она должна запускаться у любой тети паши без требования .net. Ну и с html мордой, которую я смогу поправить если что.

Суть - нужен просмотрщик логов, который будет не просто выводить сообщения, а делать это имтитируя мессенджер. логи храняться в виде txt файла такого содержания:

09.02.2013 17:01:19 Vasiliy99 го дота
09.02.2013 17:02:23 Grigory го
09.02.2013 17:04:15 Vasiliy99 я создал
09.02.2013 17:05:13 Afanasiy пидорасы, если не будете работать, поувольняю к хуям

Работет так: Открывается страница, перетягивается файлик за допустим 2016. Потом можно выбрать любой день за который хочешь посмотреть логи. После выбора появляется в "чате" первое сообщение. Чтоб вывело второе надо нажать кнопку Send или тыцнуть enter если курсор стоит в текстовом поле снизу. При чем не важно какой текст вы пишете снизу, он не будет попадать в чат. Ты просто пищешь что угодно, жмешь кнопку и из лога подтягивается следующее сообщение. В двух словах такое, с некоторыми нюансами типа кнопки выбора рандомного дня и мелочей по покраске сообщений.

Такая балалайка не будет хоститься на сайте и ей не нужен интернет. Она будет запускаться локально на компе и просто показывать логи из файла, который ей скормили
Аноним 21/01/17 Суб 19:19:46 #481 №916440 
14850155866350.png
>>916437
>\tVasiliy99\tго дота

бля, двач табы отобразил криво. ну вы поняли как оно должно быть
Аноним 21/01/17 Суб 19:47:50 #482 №916452 
>>916415
О, братишка, привет. Маялся подобной хуйней намедни, ибо асушник.

Итак, понеслася:
>Необходим вывод графика с частотой сбора 20мс, порядка 10 минут в реальном времени, т.е. 30000 точек. Насколько это безумная идея?

Во-первых, Plotly, как и все либы для построения графиков, базирующиеся на движке D3, используют SVG.
SVG хорош для создания богатых интерактивными плюшками графиков, но по сравнению со скоростью рендеринга сосут у движков, использующих webgl/2d-canvas технологию.

Во-вторых, продумай стратегию рендеринга графиков. Тебе действительно нужно ОБНОВЛЯТЬ ВИЗУАЛИЗАЦИЮ каждые 20мс? Скорее всего, нет. Данные можешь с определенной уверенностью собирать с такой частотой, а отрисовывать, скажем, раз в 5 секунд сразу пачку.

Ну и в-третьих,
>Хотелось бы, чтобы все это не тормозило
It depends. Рендеринг графиков - достаточное узкое место в общем процессе отрисовки страницы и обновления документа в целом. Поэтому, с целью минимизации тормозов, используй следующие рекомендации как говорится, мнение анона может не совпадать с мнением /pr/, лол:
- отрисовывай графики с помощью canvas либ если не нужна богатая интерактивщина;
- отрисовывай с меньшей частотой, чем собираешь данные;
- если требуется интерактивная навигация по временной шкале, хендлеры лучше организовать таким образом, чтобы обновления графика подчитывались с сервера, ибо держать ВЕСЬ объем координатных точек для графика в памяти - удар по производительности и опять же, узкое место;
- ну и, естественно, убирай за собой, как принято в культурном обществе. Удаляй массивы данных, более не нужных и находящихся в памяти.

Лично я использовал следующий стек и задействовать тебе, анон, я бы не рекомендовал в виду необходимости большой работы по оптимизации:
Сервер-сайд: NodeJS + NeDB + socketIO, клиент: ReactJS + MobX + Highcharts (SVG-based) + Clusterize

Требовалось отрисовывать пять координантных графиков, обновляющиеся с частотой 100-250 мс.
Отрисовывал раз в 5 сек.
Аноним 21/01/17 Суб 20:11:33 #483 №916458 
14850186938640.jpg
Объясните нюфагу что блажд за хуйня происходит:
var t = "hello";
r+=" ";

Итого имеем просто "hello" когда должно быть "hello " куда пропадает whitespace? Я ничего не обрабатывал.
Аноним 21/01/17 Суб 20:12:35 #484 №916459 
>>916458
>место r там t конечноже
Аноним 21/01/17 Суб 20:15:06 #485 №916461 
14850189061350.png
>>916458

Все так.
Аноним 21/01/17 Суб 20:22:26 #486 №916471 
>>916461
Попробовал с ординарными кавычками. Итог нихуя. Мб это гуглхром?
Аноним 21/01/17 Суб 20:23:04 #487 №916472 
>>916471

Ну я тебе скрин с консоли хрома скинул
Аноним 21/01/17 Суб 21:19:32 #488 №916507 
>>916>>916433
Планируется достаточно много отчетов, возможность менять настройки модулей, смотреть архивы, там функционала можно придумать больше, чем на 90% сайтов. Да и божественные, самописные велосипеды я бы не хотел использовать.
Аноним 21/01/17 Суб 21:26:02 #489 №916510 
>>916452
Спасибо за развернутый ответ. Обновлять хоть раз в 5 секунд. Очистить память в за это обнулить ссылку на объект с данными и ждать Гц?
Аноним 21/01/17 Суб 21:33:52 #490 №916513 
>>916510
>Очистить память в за это обнулить ссылку на объект с данными и ждать Гц?
Да. Ну и, очевидно, вызвать соответствующие методы для (пере)строения графиков с актуальными значениями.
Аноним 21/01/17 Суб 22:23:35 #491 №916546 
Чего-то не понял. Почему JS до сих пор общепризнано не переименовали в ES, которым он сегодня и является?

>ECMAScript — это встраиваемый расширяемый не имеющий средств ввода-вывода язык программирования, используемый в качестве основы для построения других скриптовых языков

Все встраиваемые языки так или иначе расширя.тся за счет API окрудения, куда встраиваются. JS не приносит в ES какие-либо синтаксические расширения, как например это делал AS, все исключительно на уровне API. Так по факту JS это никакой не JS, а ES.

От признания этого факта все только выиграют. Отпадет эта глупая ассоциация с Java у дурачков. Отпадет легаси биография как язычок ща 10 дней и используется только для снежинок. Потому как первоначальные версии JS(хотя по факту вообще не js а то mocha, то live) и были запилены Айком за неделю, и потом на протяжении десяти лет использовался только для анимации снежинок и меню, сегодня нет никакого ТОГО JS, есть вполне себе ES, который встраивается в разные окружения, спеки на который курирует целый комитет комитет.

Такие дела, тащемта. Я бы прямо начал с переименования треда.

Иначе хуйня выходит, какая-то.
Аноним 21/01/17 Суб 23:07:27 #492 №916602 
14850292472570.jpg
Можно ли в чистом ДС без Ангуляра как-то напрямую биндить значения из кода? Если у меня есть, скажем, объект Человек и у него есть поля Имя и Фамилия, а на странице есть элемент у которого есть свойство text, можно ли чтоб в этот Текст подтягивалось автоматом значение из Имя без нажатий кнопок и прочего?
Аноним 21/01/17 Суб 23:15:16 #493 №916607 
>>916602
>без нажатий кнопок и прочего
Хочешь, чтобы браузер сам решал что куда и когда ему подтягивать? С ума сошёл?

Если же понимаешь принципы,а не дурак, то используй обсерверы.
Аноним 21/01/17 Суб 23:25:07 #494 №916620 
>>916607
Не сам решал, а указать. В ангуляре это делается через [(ngModel)]
Ты пишешь [(ngModel)]="Person.Name" и страница смотрит что там за значения у тебя в Person.Name и подставляет сразу. В чистом ДС так нельзя?
Аноним 21/01/17 Суб 23:28:11 #495 №916623 
>>916620
Можно.
Для этого тебе надо указать - написать скрипт.
Аноним 22/01/17 Вск 00:02:22 #496 №916649 
посоветуйте маленьких проектов на реакте, чтобы не очень сложно, но и в резюме было не стыдно показать
inb4 тудулист
Аноним 22/01/17 Вск 00:29:27 #497 №916663 
>>916649
Я тебя люблю :3
Аноним 22/01/17 Вск 09:59:44 #498 №916756 
Возможно ли как-то организовать многопоточную загрузку видео в html5 video? Подвластны мне и сервер, и клиент. Если лёгкого пути нет, то может можно WebWorker'ами загрузить данные в память, скотчем склеить и потом как-то указать video элементу путь к ним?
В моём случае загрузка в несколько потоков увеличивает скорость, в разы.
Аноним 22/01/17 Вск 10:17:32 #499 №916765 
>>916756
https://developers.google.com/web/updates/2011/11/Stream-video-using-the-MediaSource-API
Аноним 22/01/17 Вск 10:24:13 #500 №916770 
>>916765
Похоже на то, что нужно, спасибо, буду пробовать.
Аноним 22/01/17 Вск 12:05:56 #501 №916830 
Посоны, на чем вы пишите ES5 или ES6?
Хочу вкатится нормально в JS, стоит ли сразу начинать писать используя let, class и прочие плюшки нормальных языков?
PEREKOT Perekoter !JLHGEtxGTk 22/01/17 Вск 12:09:30 #502 №916833 
ПЕРЕКОТ в тред >>916832 (OP)
comments powered by Disqus

Отзывы и предложения