Как быть Немо-программистом
камрады тире господа, вот допустим я зохочу поработать жаваскрипт программистом гденибудь ближе к столице
чо надо уметь? можно сформировать минимальный список умений, на который можно ориентировать ся данке |
html5
css3 ecma5 паттерны шаблонизаторы jQuery ООП |
Цитата:
я эти наборы букв давно знаю )) кокретней надо ближе к телу |
например что такова охуительнова надо зделать и придумать чтобы быть типа нарасхват
ну какбе славу заиметь и понты |
Цитата:
Цитата:
стартап будет плюсом. |
Цитата:
но хотелось бы конкретики, и параметров охуенности (просто нравится мне тема жс и веб приложений - чо бы и не попробывать похуячить, но не как рядовой нигер, а с понтами бы) |
Сделай 3д тетрис и аналог скайпа на html5 без использования сторонних либ // этого будет достаточно для демо
Пока не сделаешь можешь даже и не думать о серьезном web прогарммировании |
проги типа скайпа стимулируют развитие сетевой порнографии
это зло и уголовно наказуемо )) |
Maxmaxmахimus, нежнее, еще нежнее (с)
постарайтесь (небязательно сёдня) действительно донести до меня девстительно полезный свой опэт диавол же в нуансах |
Цитата:
Но придумать и что самое сложное реализовать придуманное - вот в этом вся фишка. Я js изучаю месяца 4-5, за это время в моей голове возникали проекты один за другим, но чем больше я начинал вникать в них, тем больше я понимал, насколько я далек от их реализации. Если в голове нет идей, то я думаю и изучать язык ни к чему :) |
Цитата:
|
Язык выучить это действительно выучить как букварь, это элементарные вещи, вскоре ты нучишься писать слова типа
(function( window, undefined ){
function trololo (){}
window['myModule'] = {
ololo : trololo
}
})( (function(){return this})(), void 0 )
потом предложения и рассказы Цитата:
|
Охуенно быть!
|
Peter Norvig
Учёный, и охуенный программист, который работал над качеством поиска в гугле, роботами NASA, старший учёный в SUN ну и тд, и тп. Дак вот он написал замечательную статью, про то как стать хорошим программистом, есть русский перевод. Научитесь программировать за 10 лет. Читаем, и ужасаемся :) |
Да не чтобы написать функцию Class не нужно 10 лет)
|
я вот как бывший спец в определенной области проработав овер 10 лет могу чотота мудрова насоветать начинающему чайнику
вот и тут какбе может бывалые поблещут житейской мудростью ибо скоро уже пенсия - надо дом двухэтажный пора покупать |
и погрется на солнышке в тропических курортах очень чота охота уже блять
|
macdack,
Чё, с 3х лет программируешь? :) |
Боюсь бесполезно тебе советывать.
что я дал тебе, ты даже неглянул. И вообще тебе не программы писать хочется а строить дом, и греться на солнышке на тропических курортах. Настрой на быстрые бабки, плохо сочетается с настроем на долгое и тяжёлое обучение. А как можно стать хорошим программистом без обучения? У меня нет волшебной таблетки. Тебе надо подход менять. Нельзя мыслить, пойду в программисты срублю бобла по быстрому ) |
Цитата:
|
Цитата:
|
DjDiablo,
У нас на работе, к сожалению, добрая половина так думает. А потом когда смотришь в то, что он наделали, руки хочется поотрывать. |
monolithed,
Ну а чё в ЛС? :) Я тоже хочу может. |
Цитата:
п.с. ты видимо перед этим не думал месяц целый над удобством этого чуда как это делал я)) ине придумывал все тщательно)) либо стырил решение у меня либо просто сам додумался до такого же и быстро ) но все ровно смотря на то как выглядит моя функция ты уже автоматически мог слизать её удобство))) но возможно ты этого и не сделал) короче показывай давай |
Цитата:
ну и задание того требует, чтобы код был ООП-шным. Цитата:
вдохновлялся кодом Class из мутулз. Цитата:
да, её надо причесать.. но она мне нужна вот чисто в текущем проекте - я хочу писать в функциональном стиле.
function Class (descriptor) {
var constructor = descriptor.__construct__ || function () {};
var parent = descriptor.__extends__ || {};
var static = descriptor.__static__ || {};
var i;
if (typeof parent === "function") {
parent = new parent();
}
constructor.prototype = Object.create(parent);
constructor.prototype.super = parent;
constructor.prototype.constructor = constructor;
for (i in descriptor) if (descriptor.hasOwnProperty(i)) {
constructor.prototype[i] = descriptor[i];
}
for (i in static) if (static.hasOwnProperty(i)) {
constructor[i] = static[i];
}
return constructor;
}
var Creation = new Class({
createdBy: "God",
// см. этот метод в каждом классе и результат
overrideMe: function () {
return "Hello";
}
});
var Animal = new Class({
__extends__: Creation,
lives: true,
overrideMe: function () {
return this.super.overrideMe() + ", ";
}
});
var Cat = new Class({
__construct__: function (name) {
alert("Создана кошкэ");
this.name = name;
},
__extends__: Animal,
__static__: {
FAV_CAT_NAME: "пушок"
},
meow: function () {
alert(this.name + " : мяу");
alert("Унаследовал : " + this.createdBy);
},
overrideMe: function () {
return this.super.overrideMe() + "World!";
}
});
var cat = new Cat( Cat.FAV_CAT_NAME );
cat.meow();
alert(cat.overrideMe());
|
Вот моя реализация, использую в текущем проекте :) И с миксинами.
https://github.com/NekR/Sync/blob/master/core.js#L41 |
melky,
а у тебя статик работают так
var Cat = new Class({
__static__: {
FAV_CAT_NAME: "пушок"
},
});
Cat.FAV_CAT_NAME === new Cat().FAV_CAT_NAME // true ?
Удобнее ли вот такой подход?
var Cat = new Class( function( __static__ ){
__static__.FAV_CAT_NAME = "пушок";
} );
А так же вопрос, у тебя нет ни какой функции в описании, у тебя обьект описательный, то есть как бы нельзя делать в нем ни какие "действия" как в моей описательной функции. Например у меня в ней можно обьявлять как бы приватные вспомогательные функции которые не относятся к самому обьекту, но их используют методы этого обьекта. При том они не наследуются а наследуются только сами методы. Как это делается у тебя?
var Cat = new Class( function () {
this.__construct__ = function () {
this.food = [];
};
this.eat = function ( foodInstance ) {
var suitabilityOfFood = _testSuitabilityOfFood( foodInstance );
if ( !suitabilityOfFood ) return false;
this.food.push( foodInstance );
}
// this вообще не используется, функция вспомогательная и не является методом объекта
// по этому и не должна наследоваться. Начинается она с подчеркивания чтобы показать что это внутренняя функция
// класса, то есть просто введя подчеркивание я сразу получаю в кодкомплите какие у меня вспомогательные
// функции в этом классе есть.
function _testSuitabilityOfFood( foodInstance ) {
return foodInstance instanceof Food;
}
} );
Таким образом функция описатель представляет собой область видимости в которой мы можем вытворять че хотим. А у тебя бы нам пришлось относить такие вспомогательные функции либо К приватным методам, либо создавать их В САМИХ МЕТОДАХ на лету. ну то есть так
var Cat = new Class( {
eat:function ( foodInstance ) {
// каждый раз создается
function _testSuitabilityOfFood( foodInstance ) {
return foodInstance instanceof Food;
}
var suitabilityOfFood = _testSuitabilityOfFood( foodInstance );
if ( !suitabilityOfFood ) return false;
this.food.push( foodInstance );
}} );
|
Цитата:
if (parent) {
if (!(this instanceof parent)) {
self = Object.create(parent.prototype);
}
parent.apply(self, arguments);
}
handler.apply(self, arguments);
return self;
};
Цитата:
for (i in static) if (static.hasOwnProperty(i)) {
constructor[i] = static[i];
}
они не наследуются. смотри пример со статическим "вшитым" свойством : alert( "now" in Date ); // ну мы знаем, что это за метод такой. var myDate = new Date(); // создадим экземпляр alert( "now" in myDate ); // в экземпляре нету статического метода. Цитата:
Cat.prototype.foo = function ... Cat.prototype.bar = function .... и __static__ туда же : __static__.foo = ... __static__.bar = ... __static__.mar = ... каждый раз повторять одно и то же неохото, поэтому я сделал всё через хеши. Цитата:
данная функция просто позиционируется как укорачиватель действий\букв, которые тратятся впустую при обычном прототипном программировании. не более и я в них я не вижу смысла, т.к. я сам эти "приватные" переменные (с "_" в начале имени свойства) уж точно не запорю, а внешний код в них тоже не сможет вмешаться - все экземпляры подчиняются одному ( класс App ), который является контроллером, и управляет доступом к объектам сам. Цитата:
|
macdack,
блин, ещё один Flixabi:-/ |
Цитата:
Cat.FAV_CAT_NAME === new Cat().FAV_CAT_NAME // true ? статические свойства доступны только из конструктора или еще из самого инстанса? Цитата:
Кстати я понимаю у нас разные цели, но для ООП чье кунфу круче твое или мое)? мой Class или твой)? Только обьективно сравни) а так же скорость исполнения)) То есть если не использовать навороты которые есть у меня, а использовать на обеих функциях одно и то же) то где будет удобнее и быстрее)? |
Цитата:
Цитата:
Цитата:
разные вещи. тем более, моя написана на коленке за 10 минут, а свою ты долго писал, придумывал и фиксил :) моя - фуфло, но мне она удобна. |
melky,
Там по моему была какая то проблема, при наследовании и extend`ах, что попадало в рекурсию или где то там в опере отваливалось если создавать на парента, а |Object.create(Class.prototype)|. Короче решил сделать так, но в этом случае оно конечно не будет instanceof нужный если вызвать просто так:
var MyClass = Sync.inherits({parent: OtherConstructor, handler: function() {}});
var obj = MyClass();
obj instanceof MyClass; //false
obj instanceof OtherConstructor; //true
|
Цитата:
ну да, спасибо за обьективнсть, не думал что ты наколенке написал прямо за 10 минут... круто тогда |
Цитата:
|
Цитата:
dicking.style.height dicking.style.display dicking.style.opacity dicking.style.background ................................. в общем всё то же самое PS: чтобы быть злым, нужно быть на стороне зла чтобы быть добрым, надо быть на стороне добра чтобы быть охуенным, нужно быть на стороне .... |
![]() |
Цитата:
var dick = self.cock; // осторожно, для ослов этот способ не сработает! dick.style.transform = "scale(99999999, 99999999)"; |
| Часовой пояс GMT +3, время: 09:40. |