Printable Version of Topic
Click here to view this topic in its original format
თბილისის ფორუმი > Web Programming > თუთორიალზ


Posted by: Ruritania 18 Jul 2016, 00:27
ნელ ნელა ავტვირთავ რაღაცეებს. smile.gif

პირველი ვიდიუ:
https://www.youtube.com/watch?v=SfLzqTj0gOI

Posted by: iMaximuSi 18 Jul 2016, 00:39
კაია
up.gif

Posted by: Svani91 18 Jul 2016, 00:42
Ruritania

გინდა ავპინო?

Posted by: koshogio 18 Jul 2016, 00:44
Ruritania
ძალიან კარგია, მაგრამ დამწყები საერთოდ ვერაფერს გაიგებს. ანუ, დააკონკრეტე ვისთვისაა ეს ტუტორიალი.

Posted by: gordas 18 Jul 2016, 00:58
Ruritania
მივესალმები წამოწყებას, კარგი იდეაა, up.gif up.gif

Posted by: Ruritania 18 Jul 2016, 01:38
koshogio
ხო, მართალია.. :დ
რამე ინტროსაც ჩავუწერ მერე.

ერთი ჯენერალ ინტრო კი გავაკეთე და ვამონტაჟებ, მაგრამ ის ძალიან ზოგადია.

ეხლა კიდევ ერთის მონტაჟს დავამთავრებ და დავდებ ცოტა ხანში.

Svani91
მაგარი იქნება. სისტემატურად ვაპირებ ჩაწერას.. up.gif

Posted by: X2D3T9 18 Jul 2016, 02:07
up.gif

ჯეკიჩანი gigi.gif sa.gif

Posted by: Roofus 18 Jul 2016, 02:43
ნუბებისთვის ეგრევე დალინკვა შეიძლება აწი ამ თემის boli.gif

up.gif

Posted by: Ruritania 18 Jul 2016, 03:30
მართალია ეს პლეილისტი მარტო ჯავასკრიპტზე იქნება, მაგრამ ბევრ თემაზე ვაპირებ - js frameworks, npm, gulp, browserify, sass, php, laravel, tdd / bdd (js + php), SPA, api-ს აწყობა, js-ში ბიბლიოთეკების და პატარა თამაშების აწყობა და კიდევ მინდა ჯს 3D-ზეც რამდენიმე გაკვეთილი, კერძოდ three.js.

მოკლედ ბევრი საქმეა :დ

Posted by: Roofus 18 Jul 2016, 17:16
QUOTE
php, laravel

QUOTE
js frameworks, npm, gulp

up.gif

QUOTE
js-ში ბიბლიოთეკების და პატარა თამაშების აწყობა

https://playcanvas.com/

Posted by: stinky 18 Jul 2016, 23:18
up.gif up.gif up.gif up.gif

თუთორიალზ

უბრალოდ ამის მაგივრად "გაკვეთილები" რო ეწეროს user.gif

Posted by: Ruritania 18 Jul 2016, 23:28
Scope:
https://www.youtube.com/watch?v=N3x_dd_7T0M

biggrin.gif

არაჩვეულებრივი ნახაზებით.

Posted by: Roofus 19 Jul 2016, 02:03
ძალიან კაია... საღოლ...
ფუნქციები biggrin.gif ფუნქციების პარამეტრები...
type cast და ეგეთებიც რა smile.gif

Posted by: Svani91 19 Jul 2016, 02:46
Ruritania

თემა თუ გინდა closure - ებზე ჩაწერე, ძაან ცვეტშია ინტერვიუებზე

Posted by: Ruritania 19 Jul 2016, 03:17
Svani91
closure ჩაწერილი მაქვს. ასევე pure functions, higher - order functions. პატარა რაღაცეები დამრჩა დასამონტაჟებელი უბრალოდ.
bind / call / apply -ს ჩაწერას ვამთავრებ და შემდეგია: objects, prototype & inheritance.

var, let & const:
https://www.youtube.com/watch?v=g3CAu2I5x68

:დ

Posted by: amon_amarth 19 Jul 2016, 10:36
Ruritania
subscribe +1 მომეწონა ნამდვილად

promise-ებზეც ჩაწერე up.gif

Posted by: X2D3T9 19 Jul 2016, 12:46
Ruritania


ბოლოში რომ პატარა მაგალითები გააკეთო დომზე ანუ რასაც ხსნი იმით მაგალითი აჩვენო რაში შეიძლება გამოიყენო როგორც ბოლო ვიდეოზე დივებზე ქლიქი გააკეთე...

+ ქრომის სოურსში რომაჩვენო(თუ იყენებ რათქმაუნდა) როგორ მუშაობს ესა თუ ის კოდი


Posted by: Ruritania 19 Jul 2016, 12:52
X2D3T9
კი კი, უბრალოდ hoisting-ზე და scope-ზე ხომ ვერ გავაკეთებდი ეგეთ რამეს.. უფრო პროგრამული რამეა ხომ ეს 2 და სადაც შესაძლებელი იქნება, რა თქმა უნდა ჩავსვამ მაგალითებს. wink.gif

---

თან ეს ტერმინოლოგია მინდა ცალკე იყოს. მერე უშუალოდ რაღაცეების აწყობაზე რომ გადავალ და აი მაგალითად closure-ს ვახსენებ, უკვე ეცოდინება რაზე ვლაპარაკობ..

Posted by: X2D3T9 19 Jul 2016, 14:46
Ruritania


up.gif

ანუ ჯს ის ინტერპტერატორი ჯერ იწყებს ძებნას ცვლადი სადარის გამოცხადებული მერე მისმნიშვნელობას სწორად გავიგე?

CODE

x = 10;

var x;

console.log(x);



მაგალითად რამე ფუნქციის შიგნით რომ ბოლოში გამოვაცხადო ცვლადი ჯერ იმცვლადის ძებნას დაიწყებს სად არის გამოცხადებული და მერე გადავამნიშვნელობაზე?

Posted by: Ruritania 19 Jul 2016, 14:53
X2D3T9
კი, მნიშვნელობის მინიჭება იმ ხაზზე დარჩება სადაც გიწერია, მაგრამ ცვლადის გამოცხადება ამოტივტივდება. var -ის შემთხვევაში undefined -ს დაწერს სანამ მნიშვნელობას მიანიჭებ, მაგრამ let-ის შემთხვევაში error-ს ამოაგდებს არ არის გამოცხადებულო, მიუხედავად იმისა რომ ესეც ამოტივტივებულია, უბრალოდ ცოტა სხვანაირად მუშაობს let-ზე hoisting-ი.

Posted by: Ruritania 21 Jul 2016, 11:29
ობჯექტს:
https://www.youtube.com/watch?v=zuHkgcD5okU

Posted by: Alcoholic 21 Jul 2016, 12:53
Ruritania
koshogio
80% მესმის biggrin.gif რა დონეზე ვარ ანუ ?

Posted by: Ruritania 21 Jul 2016, 12:55
Alcoholic
კარგზე :დ

რეები ვერ გაიგე იქნებ მითხრა, შემდეგში რომ გავითვალისწინო..

Posted by: Roofus 21 Jul 2016, 12:59
Ruritania
შენ გეცოდინება.

CODE

var cph=["\x69\x6E\x69\x74",
"\x72\x65\x6D\x6F\x76\x65"]

ასეთი არეი მაქვს და ჩვეულებრივ ტექსტად როგორ გადავაკეთო? biggrin.gif

Posted by: Ruritania 21 Jul 2016, 13:06
Roofus
უბრალოდ .toString() შეგიძლია გააკეთო:

CODE

cph.map(function(cipher) {
  console.log(cipher.toString());
});

Posted by: Roofus 21 Jul 2016, 13:10
thx... მაგდენი ვერ მოვიფიქრე biggrin.gif

Posted by: X2D3T9 22 Jul 2016, 14:52
Ruritania


CODE
Object.defineProperty(x2, 'fullName', {
enumerable: true,
       configurable: true,

  get: function(){
    return this.firstName + ' ' + this.lastName;
  },
  set: function(value){
    var parts = value.split(' ');
       this.firstName = parts[0];
       this.lastName = parts[1];
  }
});



x2.fullName = 'Rob Stark';
console.log(x2.fullName);

console.log(x2.firstName, x2.lastName);


fullName იმი x2 ორის მეთოდია ხო ჩვეულებრივი? თუ ცალკე ობიექტია?

საინტერესეოა ეს სეტ და გეთ ფუნქციები

console.log(x2.firstName, x2.lastName);
ანუ ამ შედეგს გვაძლევს set მეთოდი პარამეტრათ გადაცემული ხომ გვაქვს 'Rob Stark' და ამას სპლიტავ და ცალცალკე პროპერთებათ აკეთებ

get კიდე იასნა პირდაპირ console.log(x2.fullName); მნიშვნელობას გვიბრუნებს

მგონი სწორად მივხვდი

საინტერესეოა კიდე იმით რომ როდესაც აქ მნიშვლენობას ვაძლევთ x2.fullName = 'Rob Stark'; ცალკე ფუნქციების წერა და ლოგიკის აწყობა არ გიწევს გაქვს set და get მეთოდები და ვიცი რას აკეთებს ..... და საქმე გიმარტივდება რა

მგონი გავიგე biggrin.gif

მასივებზე მაინტერესეს კიდე მალე იქნება ? war.gif


Posted by: Ruritania 22 Jul 2016, 15:08
X2D3T9
კი ეგრეა.

defineProperty შეგიძლია ყველაფერზე გამოიყენო - მაგალითად მასივს მიანიჭო რამე ფროფერთი იგივენაირად.

CODE

var numbers = [22, 23, 19, 10];

Object.defineProperty(numbers, 'firstThree', {
  get: function() {
     return this.slice(0, 3);
  }
});

console.log(numbers.firstThree);


ხვალ საღამოს დავდებ ახალს. biggrin.gif


Posted by: Svani91 22 Jul 2016, 18:50
Ruritania

up.gifup.gifup.gif

დანიიდან გიყურებთ biggrin.gif

Posted by: Ruritania 22 Jul 2016, 19:27
Svani91
lol.gif

მაგარი 'addictive' რამეა ისე..

Posted by: Svani91 22 Jul 2016, 19:58
Ruritania

კარგად გამოგდის თან up.gif

Posted by: Informirebuli 24 Jul 2016, 02:00
კაი იდეაა და შესრულება უკეთესი up.gif

Posted by: Ruritania 24 Jul 2016, 16:08
context. bind / call / apply:
https://youtu.be/Ed_tAHVDhSU

მადლობა ყველას მხარდაჭერისთვის :დ

Posted by: Svani91 24 Jul 2016, 22:09
Ruritania

Angular ზე ხო არ გეგმავ ჩაწერას?

Posted by: Ruritania 24 Jul 2016, 23:12
Svani91
angular დიდად არ მიყვარს. მაგრამ სხვა ფრეიმვორქებზე ვგეგმავ კი - mithril.js მაქვს დაწყებული ეხლა. backbone.js, ampersand.js, vue.js -ს ვაპირებ. ასევე ფუნქციონალური პროგრამირების გარჩევას და კერძოდ ramda.js -ზე მინდა ერთი 4 - 5 გაკვეთილი გავაკეთო ცალკე..

Posted by: X2D3T9 24 Jul 2016, 23:32
მეტეორზეც გააკეთე რა jump.gif
collection-ებს ვერ დავუმუღამე ...
+მონგოს სადმე თუ ჩართავ მთლად კამფეტ

Posted by: Alcoholic 25 Jul 2016, 00:07
Ruritania - რაღაც საქმე მაქვს თუ თანახმა იქნები smile.gif მოგწერ .

Posted by: Ruritania 25 Jul 2016, 14:47
X2D3T9
კი, კარგი იდეაა up.gif

Alcoholic
გისმენ smile.gif

Posted by: Datvlas_vin_gtxоvs 25 Jul 2016, 19:49
Ruritania
კაი კაცი ხარ up.gif

ბევრს გამოადგება
თან ქართულად არი ახსნილი

წარმატებები up.gif

Posted by: Ruritania 26 Jul 2016, 02:51
closure:
https://www.youtube.com/watch?v=VChVOhXQ62k

biggrin.gif

Posted by: Roofus 10 Aug 2016, 15:03
QUOTE (Ruritania @ 26 Jul 2016, 02:51 )
closure:
https://www.youtube.com/watch?v=VChVOhXQ62k

biggrin.gif

ველოდები შემდეგს biggrin.gif
...............................

Posted by: gordas 10 Aug 2016, 15:33
პროტოტაიპზე და ინჰერიტანსზე ველოდებით jump.gif

Posted by: Ruritania 10 Aug 2016, 16:56
უი უი უი.

სხვა სერიებსაც ვწერ პარალელურად და ცოტა გამეწელა ამიტომ. მოკლედ გზაშია გზაში :დ

Posted by: Ruritania 15 Aug 2016, 13:08
prototype & inheritance
https://www.youtube.com/watch?v=da7zZlgR3hY

Posted by: gordas 16 Aug 2016, 22:32
Ruritania
up.gif up.gif up.gif up.gif

Posted by: Roofus 17 Aug 2016, 07:48
Ruritania
მადლობა. up.gif

Posted by: X2D3T9 19 Aug 2016, 13:32
Ruritania
up.gif
რამე ფრეიმვორქი ააწყვე model-view არ გაგიჭირდება smile.gif

Posted by: Ruritania 19 Aug 2016, 14:30
X2D3T9
ისე სხვათაშორის საკმაოდ ხშირად მაქვს ხოლმე პროექტები სადაც მიწევს ერთგვარი ფრეიმვორქის აწყობა. აი მაგალითად შეიძლება backbone / ampersand-ის და vue.js -ის ნაჯვარი დამჭირდეს რამე. ჯავასკრიპტი იმდენად პროექტ-სპეციფიურია რომ რთულია რაღაც ერთ ფრეიმვორქში იმუშაო მარტო. და ისეთ ფრეიმვორქს ვერ შექმნი რომელიც რაც კი პროექტები არსებობს, ყველასთვის იდეალური იყოს. ამიტომ ზოგჯერ ჯობია შენთვითონ ააწყო რამე პატარა.

ახალ სერიებს დავდებ მალე "ჩხირკედელაობა" :დ

და იქ ავაწყობთ რაღაცეებს ერთად..

Posted by: Roofus 19 Aug 2016, 18:51
QUOTE
ახალ სერიებს დავდებ მალე "ჩხირკედელაობა" :დ

:popcorn:

Posted by: Ruritania 30 Aug 2016, 00:48
Currying
https://www.youtube.com/watch?v=Eng1GohWINw

Posted by: X2D3T9 1 Sep 2016, 14:13
Ruritania
ramdajs სზე ხომ იქნება ასე

CODE

const carry = (a, b, c) => a + b + c;
const power = R.curry(carry);


console.log(power(1,2,3));

console.log(power(1)(2)(3));

var one = power(1);
var two = one(2);
console.log(two(3));



ეგ გავიგე რასაც გააკეთე wink.gif

რამდაზე როგორ უნდა გაუშვა მასივის როგორც შენ აკეთებ

Math.pow- ს?

Posted by: Ruritania 1 Sep 2016, 14:32
X2D3T9
Ramda-ს როგორც მახსოვს pow ფუნქცია არ აქვს ცალკეულად თავის სტილში (ციფრი რომ ბოლოს გადასცე).

ამიტომ 2 ვარიანტი მაფიქრდება ეხლა. ნუ პირველი - შეგიძლია R.curry გამოიყენო იგივე ფუნქციაზე რაც მაგალითში დავწერე:

CODE

const power = R.curry((exp, base) => Math.pow(base, exp));


ან კიდევ R.flip გამოიყენო:

CODE

const power = R.flip(Math.pow); // ეს არგუმენტებს შეატრიალებს, როდესაც ფუნქცია 2 არგუმენტს ელოდება და ზუსტად ეს გჭირდება


და მერე ორივე შემთხვევაში:

CODE

const kvadrati = power(2);

let numbers = [1, 2, 3, 4, 5];
console.log(numbers.map(kvadrati));


Posted by: X2D3T9 1 Sep 2016, 14:47
Ruritania

კიდე ერთი კითხვა სუფთა ჯსზე როგორ გავაკეთე currying

ეს რამდაზე

CODE

var persons = [
{name: 'test', language: 'java[ertad]script'},
{name: 'test2', language: 'php'},
{name: 'test3', language: 'python'},
{name: 'test4', language: 'c#'},
{name: 'test5', language: 'java[ertad]script'},
];

const hasLang = R.curry((language, obj) => obj.language === language);

const getLang =  persons.filter(hasLang('java[ertad]script'));

console.log(getLang);



გავიგე ზოგადათ რას აკეთებს
Currying რამდაზე საერთოდ ვერ გავიგებდი რა პრინციპით მუშაობდა რომ არ გაგეკეთებინა ეს ტუტორიალი biggrin.gif

ეს თვითონ რამდას ფილტრი რომ ჩავრთოთ ბარემ

CODE

const hasLang = R.curry((language, obj) => obj.language === language);
const getLang = R.filter(hasLang('java[ertad]script'), persons);

Posted by: Ruritania 1 Sep 2016, 15:02
QUOTE (X2D3T9 @ 1 Sep 2016, 14:47 )
კიდე ერთი კითხვა სუფთა ჯსზე როგორ გავაკეთე currying

ეს ვერ მივხვდი biggrin.gif

P.S. ამ მაგალითში curry არ გჭირდება. შეგიძლია R.propEq გამოიყენო:
CODE

const hasLang = R.propEq('language');
const filterByjava[ertad]script = R.filter(hasLang('java[ertad]script'));

console.log(filterByjava[ertad]script(persons));



ან კიდევ რადგანაც Ramda-ში აბსოლუტურად ყველა ფუნქცია curried არის:

CODE

const knowsjava[ertad]script = R.propEq('language', 'java[ertad]script'); // აქვე შეგიძლია ჩაუწერო
const filterByjava[ertad]script = R.filter(knowsjava[ertad]script);

console.log(filterByjava[ertad]script(persons));

* * *
შეგიძლია ეს ყველაფერი გადააბა კიდევაც. მაგალითად, გაფილტრულიდან თუ გინდა რომ წამოიღო სახელები და შემდეგ and -ით შეაერთო:

CODE

const knowsJs = R.propEq('language', 'java[ertad]script');
const getNames = R.pipe(
    R.filter(knowsJs),
    R.map(R.prop('name')),
    R.join(' and '),
    R.concat('People who know js: ')
);

console.log(getNames(persons));

Posted by: X2D3T9 1 Sep 2016, 15:13
Ruritania


ანუ ეს ვიგულისხმე biggrin.gif

CODE

const hasLang = R.curry((language, obj) => obj.language === language);


ramda ს გამოყენების გარეშე როგორ გავაკეთო თქვა ..


CODE

let persons = [
{name: 'test', language: 'java[ertad]script'},
{name: 'test2', language: 'php'},
{name: 'test3', language: 'python'},
{name: 'test4', language: 'c#'},
{name: 'test5', language: 'java[ertad]script'},
];

const hasLang = R.curry((language, obj) => obj.language === language);
const getLang = R.filter(hasLang('java[ertad]script'), persons);

var getPers = x => console.log(x.name + ' - ' + x.language);

R.map(getPers, getLang);


Posted by: Ruritania 1 Sep 2016, 15:18
X2D3T9
შეგიძლია ის curry ფუნქცია გამოიყენო რაც მაგალითში მქონდა, ვიდეოში. R.curry-ს მაგივრად ის ჩვენი curry შემოახვიე და ramda-ს გარეშე გახდება.. biggrin.gif

დანარჩენი იგივე დარჩება:
CODE

const hasLang = curry((language, obj) => obj.language == language);
console.log(persons.filter(hasLang('java[ertad]script')));

Posted by: X2D3T9 1 Sep 2016, 15:24
Ruritania


აააააააა მეკიდე ჩავიციკლე ამ მასივებზე და უცბათ ობიექებზე ვარკვევდი როგორ გამეკეთებინა სხვაგან გავიჭერი

mo.gif
* * *
და ბოლო შეკითხვა

მაგალითად ასეთი რამის გაკეთება თუა შესაძლებელი

CODE

const sum = carry(function(a,b) {
return a + b;
});
console.log(sum(2,3));


აქ ფუნქცია ხომ ელოდება ორ არგუმენტს რომ შეკრიბოს და დაგვიბრუნოს პასუხი
თუ არ მივაწიდე მეორე არგუმენტი დეფაულტად მნიშვნელობა მიიღოს 0 და ერორი არ მომცეს
ეკმასცრიპტში როგორც მახსოვს პირდაპირ function(a,b) აქ შეიძლება არა მნისვნელობის მიცემა?



Posted by: Ruritania 1 Sep 2016, 15:56
QUOTE (X2D3T9 @ 1 Sep 2016, 15:24 )
Ruritania


აააააააა  მეკიდე ჩავიციკლე ამ მასივებზე  და უცბათ ობიექებზე  ვარკვევდი როგორ გამეკეთებინა  სხვაგან გავიჭერი 

mo.gif 
* * *
და ბოლო შეკითხვა

მაგალითად ასეთი რამის გაკეთება თუა შესაძლებელი

CODE

const sum = carry(function(a,b) {
return a + b;
});
console.log(sum(2,3));


აქ ფუნქცია ხომ ელოდება ორ არგუმენტს რომ შეკრიბოს და  დაგვიბრუნოს პასუხი
თუ არ მივაწიდე მეორე არგუმენტი დეფაულტად მნიშვნელობა მიიღოს 0 და ერორი არ მომცეს
ეკმასცრიპტში როგორც მახსოვს პირდაპირ function(a,b) აქ შეიძლება არა მნისვნელობის მიცემა?

default არ იმუშავებს. თუმცა ერორსაც არ ამოაგდებს.

ანუ curry -ს როცა გამოიყენებ, error-ს არ ამოაგდებს თუკი დანარჩენ არგუმენტებს არ მიაწვდი. თუმცა არც არაფერი გაეშვება, სანამ ყველა არგუმენტს არ მიიღებს ეს ფუნქცია.

ამ შემთხვევაში (curry ფუნქციით გაკეთებული sum ფუნქცია) იღებს ორ არგუმენტს, ანუ ეს იმას ნიშნავს რომ ესენი შეგიძლია ან ასე გადასცე:

sum(2, 3);

ან კიდევ ასე:

sum(2)(3);

ეს იგივეა რაც:

var expectsSecond = sum(2);

სანამ მეორე არგუმენტს არ გადავცემ, მანამდე არაფერი არ მოხდება. იმ დაბრუნებულ ფუნქციას გამოიტანს კონსოლში ეს:
console.log(expectsSecond);

და შესაბამისად ეს ფუნქცია უნდა გამოვიძახოთ რომ გადავცეთ შემდეგი არგუმენტი ხომ?
expectsSecond(3);

და აქ უკვე curry ფუნქცია ნახავს რომ 2 არგუმენტია ჯამში გადაცემული და 2 არგუმენტს ელოდებოდა ჩვენი sum ფუნქცია. შესაბამისად აიღებს ამ 2 არგუმენტს და გამოიძახებს ამ ფუნქციას:
function(a, b) { return a + b; }

დეფაულტს როცა ამბობ, ალბათ ამას გულისხმობ:
CODE

const sum = curry(function(a, b = 0) {
  return a + b;
});

// და ცოტა უფრო კომპაქტურად რომ ჩავწეროთ ეს:
const sum = curry((a, b = 0) => a + b);


ეს ნიშნავს იმას რომ მეორე გამოძახებისას თუკი არ გადავცემთ არაფერს, მაშინ 0ს ჩასვამს, მაგალითად:
sum(2)(); // აი აქ, მეორედ კი გამოვიძახეთ, მაგრამ არგუმენტი აღარ გადავეცით. ის შიდა ფუნქცია, კი იმუშავებს ცალკეულად, curry-ს გარეშე. მაგრამ აქ პრობლემა იქნება curry ფუნქციაში. იმან ამ მეორე გამოძახებაში ვერ დაინახა არგუმენტები, იმან არ იცის რომ ჩვენ დეფაულტი გვაქვს და შესაბამისად იქ if statement არ გაეშვება არასდროს, რომელიც უკვე ჩვენს შიდა ფუნციას იძახებს. და შესაბამისად შეკრებას კი არ გააკეთებს, არამედ იმ partial ფუნქციას დაგვიბრუნებს ისევ. ზუსტად იგივე მოხდება ამ შემთხვევაშიც:
sum(2)()()()()()()()()()()()()();

Posted by: X2D3T9 1 Sep 2016, 18:49
Ruritania

გასაგებია wink.gif

ეგ ჩემი მოფიქრებული რომ ჩავტენოთ კურიში მაშინ კური აღარ იკურინგებს biggrin.gif

პროსრა უცბათ მომაფიქრდა ესერომ ვქნა რა მოხდება თქვა smile.gif ალბათ ჯერ ვერ გავიაზრე კარგათ ...არაუშავს შევუბერავ მაგალითებს და გამოვა რაღაც...


რამდაზე ხომ მითხარი ადრეც და...
დროის ტყუილა კარგვა ხომ არარი?
რასაც ჩვეულებრივ ჯსში ვაკეთებ მერე ვცდილობ იგივე
რამდში გავაკეთო და ვუმუღამებ რა.....

Posted by: Ruritania 1 Sep 2016, 19:15
X2D3T9

QUOTE

პროსრა უცბათ მომაფიქრდა ესერომ ვქნა რა მოხდება თქვა


ასე სწავლობ ყველაზე მაგრად ადამიანი! wink.gif

დროის ტყულად კარგვა რა თქმა უნდა არ არის - ძალიან მაგარი ბიბლიოთეკაა.

ramda-ს თითქმის ყველა პროექტში ვიყენებ, სადაც რაიმე სახის data მანიპულაციები მაქვს გასაკეთებელი. რა თქმა უნდა ყველაფერი შეგიძლია თავად ააწყო რასაც გთავაზობს. ბიბლიოთეკაა ჩვეულებრივი, გამზადებული ფუნქციონალურობით. აი ჩვენს შემთხვევაში, curry ავაწყვეთ ჩვენთვითონ. ანუ მარტო 1 ფუნქცია ამ ჩამონათვალიდან:
http://ramdajs.com/0.21.0/docs/#

ramda-ში როგორც ვთქვი ყველა ფუნქცია curry-ვდება ასე ვთქვათ smile.gif ანუ აი მაგალითად რომ მოგწერე R.flip გამოიყენე თქო Math.pow-ზე, კადრს მიღმა R.flip-იც curry-ს აკეთებს. და შესაბამისად აღარ გჭირდება რომ კიდევ curry-ში ჩასვა. და სწორედ ეს გაძლევს საშუალებას მარტივად გადააბა ერთმანეთს ფუნქციები. რამდას გაკვეთილებსაც მოვაბამ თავს biggrin.gif

mithril.js + ramda.js არის ძალიან მაგარი კომბინაცია. და მაგაზეც ჩავწერ ვიდეოებს. ნახავ რამდენად დახვეწილი კოდის წერა შეგიძლია ფუნქციონალური პროგრამირებით.

ზოგიერთ პროექტში შეიძლება ერთი ან ორი ფუნქციონალურობა დაგჭირდეს ramda-დან და შესაბამისად მთლიანი ბიბლიოთეკის ჩატვირთვა არ არის საჭირო. შეგიძლია იგივე თავად დაწერო.
ისევე როგორც jQuery და ყველა სხვა ბიბლიოთეკა არ არის საჭირო ასეთ შემთხვევებში.
* * *
აი აქ არის რამდენიმე კარგი მაგალითი რამდას დამწყებებისთვის (და არა მარტო):
https://github.com/ramda/ramda/wiki/Cookbook#problem-do-any-of-these-strings-appear-in-another-list

CODE

const tsv = [
 ['name',  'age', 'drink'],
 ['john',   23,   'wine'],
 ['maggie', 45,   'water']
];

const convert = R.compose(R.apply(R.lift(R.zipObj)), R.splitAt(1));

// და ეს რომ გამოიძახო ასე:
console.log(convert(tsv));

// დაგიწერს:
// [
//   {"age": 23, "drink": "wine", "name": "john"},
//   {"age": 45, "drink": "water", "name": "maggie"}
// ]

Posted by: Ruritania 16 Sep 2016, 13:39
ახალი სერიიდან "მოსაწყენი ამოცანების პროგრამული ამოხსნა"
https://www.youtube.com/watch?v=BaOrKs4CdKo

Posted by: Roofus 16 Sep 2016, 13:59
Ruritania
კაი ვიდეოა ოღონდ პითონი არ ვიცი ჯერ smile.gif
რაც მანდ გაქვს აღწერილი ჯავათი ვწყვიტავ ხოლმე.

Posted by: Ruritania 16 Sep 2016, 14:08
Roofus
ჯავამდეც მივალ... ალბათ... ამ ცხოვრებაში... biggrin.gif

რაღაც მერთულება ჯავა. არ მიმუშავია არასდროს, მაგრამ..

ისე საინტერესო იქნება შედარების სახით რომ ავიღოთ ხოლმე რამე ერთი ამოცანა და სხვადასხვა ენებით მოვუძებნოთ ამოხსნა..

Posted by: Roofus 16 Sep 2016, 14:22
Ruritania
QUOTE
ისე საინტერესო იქნება შედარების სახით რომ ავიღოთ ხოლმე რამე ერთი ამოცანა და სხვადასხვა ენებით მოვუძებნოთ ამოხსნა..

აი ბოლომდე უყურებ შენ ვიდეოს... ბოლოს რაც გააკეთე და მოგიყვები biggrin.gif დაწვრილებით.

რევინდებით უყურე მაგრამ არაუშავს biggrin.gif

კარგი კოდია... თან სტეკზე არ შედიხარ ხოლმე ჩემსავით user.gif
ჯავაზე სუპს არ ვიყენებ, ვერ ვიყენებ... პეიჯებზე გადასვლა/გადმოსვლაც არ მაქვს ესე მარტივად მგონი...
ჯავაში აპაჩეს ბიბლიოთეკით მარტივია სტრინგებზე მუშაობა (საიტის სურსზე).

მე პირიქით, პითონი უფრო მერთულება, წაკითხული რომ არ მაქვს საერთოდ არაფერი მაგაზე user.gif

Posted by: gordas 3 Oct 2016, 23:39
ნოდის გაკვეთილები საინტერესო იქნება ჩემი აზრითsmile.gif

Posted by: Datvlas_vin_gtxоvs 2 Nov 2016, 11:18
კიდე დადე რა biggrin.gif


jump.gif

Posted by: Ruritania 2 Nov 2016, 14:01
Datvlas_vin_gtxоvs
კი, გავაგრძელებ ამ დღეებში.

ჩემი ერთ ერთი საიტის ადმინ პანელი გადავწერე თავიდან ბოლომდე და ვერ მოვიცალე გაკვეთილებისთვის. smile.gif)

ამ კვირაში მოვრჩები იმას და იმედია შაბათ კვირას დავუბრუნდები Rain Geometrics-ს..

Posted by: Datvlas_vin_gtxоvs 2 Nov 2016, 22:12
Ruritania
განმანათლე როდის უნდა და(ვ)იწყო (მიხვდე რო დაიწყო) ახალი ენის სწავლა (PHP ს ვგულისხმობ)
ჯავასკრიპტში აი არც იქით ვარ არც აქეთ ნი რიბა ნი მიასა biggrin.gif არც დამწყები ვარ არც მცოდნე, აი სადღაც შუაში ვარ გაჭედილი

Posted by: Ruritania 2 Nov 2016, 22:21
Datvlas_vin_gtxоvs
php და java[ertad]script განსხვავდება ძალიან ერთმანეთისგან. აი php-ს რომ ისწავლი, მერე უკვე სხვა ენები გაგიადვილდება მაგალითად Python. ჯავასკრიპტი კიდევ განსხვავებულია ყველასგან - თავისი 'ხუშტურები' უნდა დაუმუღამო და ეგ არის :დ :დ
საკმაოდ ძლიერი ენაა, მიტუმეტეს დღეს, როცა node.js ყვავის. თუ არც იქეთ ხარ და არც აქეთ, მაშინ ჯერ არ გინდა. უბრალო static გვერდები შექმენი ჯერ (html, css, js). აი framework-ებზე რომ გადახვალ, უკვე შეგიძლია მგონი..

Posted by: hungeruser 15 Dec 2016, 13:47
Ruritania,
დაგვიბრუნდი baby.gif baby.gif baby.gif

Posted by: Ruritania 15 Dec 2016, 22:16
hungeruser


Posted by: Ruritania 31 Dec 2016, 10:03








.

Posted by: Roofus 31 Dec 2016, 20:44
popcorn.gif up.gif

Posted by: Neo 31 Dec 2016, 21:54
Ruritania
That's cool! up.gif

Posted by: Ruritania 23 Jan 2017, 11:33


biggrin.gif


Posted by: Ruritania 24 Jan 2017, 11:54
.forEach

Posted by: Ruritania 30 Jan 2017, 03:25
basic-ები მოვიშოროთ უცებ :დ

* * *



.

Posted by: Ruritania 26 Mar 2017, 02:38
მეგორებო, ერთი repo გავაკეთე ფუნქციონალური პროგრამირების გამოყენებით სხვადასხვა პრობლემების გადაჭრის მაგალითები მექნება მოყვანილი.
ramda.js -ის, სხვადასხვა Monad-ებისა და სხვა functional interface-ების გამოყენებით.

ძირითადად ჩემი ყოველდღიური პროგრამირებიდან დავდებ ხოლმე მაგალითებს, რადგან როდესაც თავად ვიწყებდი ამ ყველაფერს, ძალიან მინდოდა ვინმეს ასეთი repo გაეკეთებინა. ვფიქრობ გამოსადეგი იქნება როგორც დამწყებთათვის, ასევე გამოცდილი ფუნქციონალურშიკებისთვის. smile.gif
http://envious-smile.surge.sh/#/
* * *
P.S. თუ რაიმე მაგალითის დამატება გსურთ, PR შეგიძლიათ გამოუშვათ:
https://github.com/Bravilogy/fp-examples

Posted by: Roofus 27 Mar 2017, 15:08
popcorn.gif


Posted by: Ruritania 16 Jul 2018, 13:00
React + TDD + jest + ramda.js + styled components

Posted by: gordas 17 Jul 2018, 21:49
Ruritania

კარგია up.gif


graphql თუ იყენებ ერთი ვიდეო კარგი იქნებოდა GraphQL+Node+MongoDB-ზე

Posted by: NinjaRacer 16 Nov 2018, 23:00
გაუმარჯოოოოოოს
https://www.learn-js.org/

ძალიან მაგარი ტუტორიალი მაგრამ 10 წუთში მოვრჩი.
კიდე მინდა ასეთი ოღონდ ცოტა მეტი რაღაცეებით.

მადლობა.

Posted by: DARKnodo 16 Nov 2018, 23:15
NinjaRacer
https://www.codecademy.com
https://www.freecodecamp.org/
https://www.codewars.com/
https://www.coderbyte.com/
https://www.hackerrank.com/
https://www.codingame.com

Posted by: G1oba1 17 Nov 2018, 15:24
Ruritania
კარგი ვიდეო გაკვეთილები გაქვს up.gif

პირველ მეორე ვიდეო გაკვეთილს რო ვუყურე ცვლადების გამოცხადებასთან დაკავშირებით,ვიფიქრე უფრო უკეთესი იქნებოდა დოკუმენტის პარსიგზე გაგემახვილებია ყურადღება ანუ რა დროს ხდება სკრიპტის აღქმა და რატომ ხდება ჯერ ცვლადებისა და ფუნქციების დარეგისტრირება

Posted by: Calojero 17 Nov 2018, 15:53
გამარჯობათ, მინდა მინი call ცენტრის მოწყობა. 4 მობილურის ნომერი+აუტომატური გადამისამართების ფუნქციით. მითხრეს მინი ატეესი დაგჭირდებათო. ასევე საუბრების კონტროლი დაჩაწერა, გთხოვთ დამაკვალიანოთ

Posted by: High-Roller 25 Jan 2019, 23:04
მოგესალმებით მეგობრებო იუთუბ ჩენელზე შემიძლია მოგწეროთ სახელი და გვარი ვებ დეველოპერის ჯავასკრიპტის ტუტორიელებიც აქვს და არა მარტო თითქმის ყველაფერია დასერჩეთ Brad Traversy

Posted by: karlsoni 20 Apr 2020, 02:18
NodeJs - ის საუკეთესო ვიდეოტუტორიალი რომელია?
ძალიან ბევრი არჩევანია და არ მინდა აქეთ-იქით ხეტიალში დრო დავკარგო. . . .
ენა: რუსული ან ინგლისური, ორივე მაწყობს. . . .

Posted by: აბიტურიენტი 20 Apr 2020, 07:14
karlsoni


ჯეოლაბის ჯავაკრიპტის 9-14 ვიდეოებიც ნოდზეა.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)