thedeemon: (office)
[personal profile] thedeemon
В начале мая в логове фейсбука прошла конференция DConf, посвященная языку D. Финансировали ее всем миром через проект на кикстартере, я там тоже поучаствовал скромным спонсором. Видео всех выступлений были выложены на ютюбе, вот наиболее мне понравившиеся, которые могу порекомендовать всем тем, кто открыт к новому и имеет немного любопытства:

1. Web Development in D - какие есть замечательные инструменты (в первую очередь vibe.d), как с ними все получается просто и красиво (и эффективно), благодаря грамотному использованию возможностей D.
2. Writing Testable Code in D - тут больше демонстрация умений и удобств языка.
3. Metaprogramming in the Real World - занятный experience report от компании с сотней программистов, где весь код пишется на D.

Date: 2013-09-08 10:44 pm (UTC)
From: [identity profile] xeno-by.livejournal.com
О, еще. Можно ли из темплейта прочитать содержимое внешнего скоупа? Например, чтобы в ToJSON не надо было передавать X.

Date: 2013-09-09 03:52 am (UTC)
From: [identity profile] thedeemon.livejournal.com
Добавляем в начало
module mymodule;
и в коде пишем:
writeln([__traits(allMembers, mymodule)]);
получаем
["object", "std", "ToJSON", "ToXML", "X", "main", "D12TypeInfo_Axa6__initZ"]
Если еще вспомнить про user-defined attributes, получаем довольно могучий струмент.

Date: 2013-09-09 06:37 am (UTC)
From: [identity profile] xeno-by.livejournal.com
Сорри, я что-то туплю. А как это поможет написать не ToJJSON!X, а просто ToJSON?

Date: 2013-09-09 07:51 am (UTC)
From: [identity profile] thedeemon.livejournal.com
Не, это я про сильно внешний скоуп подумал - чтобы сразу весь модуль проанализировать. Если нужен только "вызывающий", то есть parent:
mixin template ToXML()
{
    void toXML() { writeln([__traits(allMembers, __traits(parent, toXML))]);   }
}

class X 
{
    int x;
    mixin ToXML;
}

Вызов toXML выводит
["x", "toXML", "toString", "toHash", "opCmp", "opEquals", "Monitor", "factory"]

Profile

thedeemon: (Default)
Dmitry Popov

December 2025

S M T W T F S
 12 3456
789101112 13
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 29th, 2026 12:37 pm
Powered by Dreamwidth Studios