SlideShare a Scribd company logo
Zamyakin
Zamyakin
Zamyakin
Вёрстка
Zamyakin
<div class="event event_past"></div>

<div class="sidebar sidebar_left"></div>

<div class="wrapper has-sidebar_left"></div>
Zamyakin
var nodes = this.node.find(“.todo”);

for (var i = 0, l = nodes.length; i < l; i++) {
   nodes.eq(i).addClass(“todo_hidden”);
}
var nodes = this.node.find(“.todo”);

nodes
  .closest(“.container”)
  .addClass(“without-todo”)
.container .todo {
  display: block;
}
.container_without-todo .todo {
  display: none;
}
https://github.com/mailru/fest

http://habrahabr.ru/company/mailru/blog/141361/
— IDE
— Валидация из коробки
— SAX, XSLT, XSD, DTD ...
— XML to XML
Zamyakin
3ms
<div>
  <fest:attributes>
    <fest:attribute name="class">
       <fest:text>event</fest:text>

       <fest:if test="end > now">
          <fest:text>event_past</fest:text>
       </fest:if>

       <fest:if test="!event.is_writeable">
          <fest:text>event_readonly</fest:text>
       </fest:if>

       <fest:if test="event.is_temporary">
          <fest:text>event_temporary</fest:text>
       </fest:if>

     </fest:attribute>
  </fest:attributes>
</div>
<div>
  <fest:attributes>
    <fest:attribute name="class">
       <fest:text>event</fest:text>

       <fest:if test="end > now">
          <fest:text>event_past</fest:text>
       </fest:if>

       <fest:if test="!event.is_writeable">
          <fest:text>event_readonly</fest:text>
       </fest:if>

       <fest:if test="event.is_temporary">
          <fest:text>event_temporary</fest:text>
       </fest:if>

     </fest:attribute>
  </fest:attributes>
</div>
<div>
  <fest:attributes>
    <fest:attribute name="class">
          event
       <fest:if test="end > now">
             event_past</fest:text>
       </fest:if>

       <fest:if test="!event.is_writeable">
          <fest:text>event_readonly</fest:text>
       </fest:if>

       <fest:if test="event.is_temporary">
          <fest:text>event_temporary</fest:text>
       </fest:if>

     </fest:attribute>
  </fest:attributes>
</div>
<div>
  <fest:attributes>
    <fest:attribute name="class">
       <fest:text>event</fest:text>

       <fest:if test="end > now">
          <fest:text>event_past</fest:text>
       </fest:if>

       <fest:if test="!event.is_writeable">
          <fest:text>event_readonly</fest:text>
       </fest:if>

       <fest:if test="event.is_temporary">
          <fest:text>event_temporary</fest:text>
       </fest:if>

     </fest:attribute>
  </fest:attributes>
</div>
<div class="event event_past event_temporary"></div>
<div class="event event_past event_temporary"></div>
<div class="event event_past event_temporary"></div>
Javascript
Zamyakin
Zamyakin
jQueryMX
  http://javascriptmvc.com/docs.html#!jQuery.Class
var that = this;

this.node
   .find(".g-button")
   .on("click", function() {
         that.addCalendar();
      })
var that = this;

window.setTimeout(function() {
   that.update();
}, 30)
this.node
   .find(".g-button")
   .on("click", this.addCalendar.bind(this))


window.setTimeout(this.update.bind(this), 30)
this.node
   .find(".g-button")
   .on("click", this.addCalendar)


window.setTimeout(this.update, 30)
someMethod: function() {

    methodBody

}
someMethod: function() {
  try {
     methodBody.apply(this, arg)
  } catch (e) {
     // processError
  }
}
Zamyakin
Zamyakin
Zamyakin
Zamyakin
Zamyakin
window.onerror = function(errorMsg, url, lineNumber) {
   …
}
https://github.com/getsentry/raven-js

https://github.com/getsentry/sentry
Zamyakin
Zamyakin
CORS

webkit
 FF
<script src="//static.calendar.mail.ru" />
<script src="//static.calendar.mail.ru" />
Идеи
Zamyakin
Zamyakin
Zamyakin
Zamyakin
Zamyakin
Zamyakin
API
О чём надеемся
рассказать в следующий
          раз
-   Векторные иконки
-   Оффлайн-режим
-   Аналог tzdata в браузере
-   Интернационализация
-   Вебсокеты
Zamyakin
Zamyakin
К о н с та н т и н З а м я к и н
п р о г р а м м и с т, К а л е н д а р ь @ M a i l . r u
       k.zamyakin@corp.mail.ru

More Related Content

Zamyakin