Aklımda Kalası Kelimeler

* давайте работать вместе
* Zarf ve Mazruf, Zerafet(xHoyratlık) ile aynı kökten(za-ra-fe) gelir
* Bedesten
* Suç subuta ermiştir - Suç sabit olmuştur

6 Mayıs 2015 Çarşamba

JSON Schema ile nesnelerinizi doğrulama ya da şemaya uygun başlangıç nesneleri tanımlama

Şimdilik zaman azlığı çektiğimden anahtar kelimeler ve biraz kod parçası atacağım.
NPM Kütüphaneleri:
  1. json-schema-defaults
  2. is-my-json-valid

Şablon olması için kullanabilirsiniz Webstorm içinde:
module.exports = {
    "$schema": "http://json-schema.org/draft-04/schema#",
    name: "BenimSchemaM",
    description:"Örnek şema olsun diye az açıklamalı olarak yazabildim.Daha ilişki yönetimleri vardı :(",
    definitions: {},
    type: "object",     // şemanın doğrulayacağı ya da şemadan oluşturulacak nesnenin tipi. string, object, array...
    required: [],       // string dizisi. Olması mecburi property isimlerini içerir

    additionalProperties: false,    // Şemada tanımlı olmayan ama şemaya uygun olduğunu iddia eden nesnenin fazladan propertysine müsade et/me

    properties: {
        Id: {type: "number", default: 0},
        WebAdresi: {type: "string", format: "url"},
        dizi: {
            type: "array",              // dizi property sinin tipi ARRAY olacak ve
            items: {type: "string"}     // içindeki her eleman string tipinde olacak
        }
    }
};

Miras Alma(Inheritance) ya da Genişletme(Extend)

Bir esas bir de onu miras alacak şemamız olsun.
module.exports = {
    name: "Kullanıcı",
    description: "Session içinde kullanılacak kullanıcı",
    type: "object",
    definitions: {
        Providers: require('../providers/login')
    },
    required: ["Id", "Providers"],
    properties: {
        Id: {type: "integer", default: 0},
        AdiSoyadi: {type: "string"},
        EPosta: {type: "string", format: "email"},
        Sifre: {type: "string"},
        Providers: {$ref: "#/definitions/Providers", default: {}}
    },
    additionalProperties: true
};

Miras alarak yeni bir şema oluşturalım:
var tahtaRolu = {

    $schema: "http://json-schema.org/draft-04/schema#",
    description: "Tahtanın rollerini içerir >  HS > tahta:401:rol : Tahtanın rolleri > 1 | {adi:'Sahip', Yetkileri:['Ihale Girişi','Ihaleye Katılım', 'Teklif Girişi'] }",
    type: "object",
    required: ["Id", "Adi", "Yetki"],
    definitions: {
        Kullanici: require('../ortak/kullanici'),
        Rol: require('./tahtaRolu')
    },
    allOf: [
        {$ref: "#/definitions/Kullanici"},
        {
            properties: {
                Rol: {$ref: "#/definitions/Rol"}
            }
        }
    ],
    additionalProperties: false
};

module.exports = tahtaRolu;
Sonuç:

5 Mayıs 2015 Salı

JSDoc ile javascript kodlarınızın belgelendirilmesi

/**
* My js app
* @module app
*/

/** 
* Namespace for MYAPP classes and functions.
* @namespace MYAPP
*/
var MYAPP = MYAPP || {};

/**
* A maths utility
* @class
*/
MYAPP.math_stuff = {

    /**
    * Sums 2 numbers
    *
    * @property sum
    * @param {Number} a First number
    * @param {Number} b Second number
    * @return {Number} Sum of the inputs
    */
    sum: function (a, b) {
        return a + b;
    },

 /**
 * Yaş bilgisini tutar
 * @property yas
 */
 yas : 12,
    /**
    * Multiplies 2 numbers
    *
    * @property multi
    * @param {Number} a First number
    * @param {Number} b Second number
    * @return {Number} The inputs multiplied
    */
    multi: function (a, b) {
        return a * b;
    }
};

/**
* My js app
* @module app
*/
/** 
* Namespace for MYAPP classes and functions.
* @namespace HUMAN_RESOURCE
*/
var HUMAN_RESOURCE = HUMAN_RESOURCE || {};

/**
* @class JustClass
* @constructor
*/
HUMAN_RESOURCE.JustClass = function(){ }

/**
* Constructs Person objects
* @class Person
* @constructor
* @param {String} First name
* @param {String} Last name
*/
HUMAN_RESOURCE.Person = function (first, last) { 
    /**
    * @property f_createPerson
 * @param {Person} [_person] açıklama
    * @return {Person} Person type object
    */
 this.f_createPerson = function(_person, _person2){ return new Person() }
};

/**
* Return Person's full name
* @alias getName
* @memberof! HUMAN_RESOURCE.Person#
* @return {String} First name + last name
*/
HUMAN_RESOURCE.Person.prototype.getName = function () {
    return this.first_name + ' ' + this.last_name;
};