Вот идеальный рабочий день - полдня в чем-то разбираться, полдня это простым языком объяснять другим кому интересно.
10 лет это 3 класс
я слышал, что очень многое меняется в вебе за полгодаНе. Новые спеки по js выходят примерно раз в год, но браузеры не особо успевают это все внедрять и даже ES6 (2015) работает не везде (привет, майкрософт!). Ну и в этих новых спеках не "все меняем" а просто добавляется несколько новых плюшек. Иногда очень значимых, но не ломающих старый код.
Почему я не могу убрать скобки, или ещё что-нибудь, и написать так, как мне хочется. В общем, где все это определено?
Как хранить исходники вместе или раздельно по разным репозиториям? Какие плюсы и минусы каждого способа?Мне кажется тут вопрос не столько в "плюсах и минусах" сколько в здравом смысле. Мне не совсем понятно, что в конечном счёте означает "бекенд на python, фронтэнд на angular". Это два независимых проекта, способных работать автономно друг от друга и "общаться", например, через API, разработка которых происходит параллельно и независимо друг от друга, при этом какие-либо части проектов не пересекаются между собой (например, куски HTML/CSS/JS/etc кода не копируются в бекенд-часть)? Если так - то крайне логично разделить это на два отдельных репозитория, т.к. это по сути два разных проекта, связанных между собой весьма косвенно. Если же у Вас проекты имеют более прочную связь между собой или степень контаминации исходного кода выше той, что я описал ранее - то это один проект и дробить его на множество репозиториев, лично я смысла не вижу никакого (а то мы так дойдём до "давайте хранить HTML-код в одном репозитории, CSS в дургом, JS в третьем и т.д.).
Могут ли без вас менять код, если вы не давали разрешения на это?Обладатель исключительных прав решает что делать с кодом - продавать, передавать, модифицировать.
const options = [
[ 'hello, world!!', 'fuck the world', 'fuck everything' ],
500,
(elem => item => elem.textContent = item)
(document.querySelector('.slide-words')),
];
function interval(arr, delay, callback) {
let i = -1;
return arr.length
? setInterval(() => callback(arr[i = -~i % arr.length]), delay)
: null;
}
const intervalId = interval(...options);
// надо остановить, делаем так: clearInterval(intervalId);
function interval(arr, delay, callback) {
let timeoutId = null;
arr.length && (function next(i) {
timeoutId = setTimeout(() => {
callback(arr[i]);
next((i + 1) % arr.length);
}, delay);
})(0);
return () => clearTimeout(timeoutId);
}
const stop = interval.apply(null, options);
// надо остановить, делаем так: stop();