8000 GitHub - dnclive/tlib_sharp: Some classes to make you sharp more dynamic
[go: up one dir, main page]

Skip to content

dnclive/tlib_sharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tlib_sharp

Some classes to make you sharp more dynamic

Стиль написания tlib

Tlib несет с собой определенный стиль написания программы, который можно выразить так - необходимо и достаточно.

Ключевые особенности

  • Мы не беспокоимся заранее об объявлении переменных, и проектировании класса. Мы просто пишем код, и добавляем весь необходимый функционал и данные (переменные, структуры) по мере необходимости
  • Мы используем унифицированные декларации функций и данных.
  • Архитектура приложения похожа на слоенный пирог, где каждый класс занимает определенный уровень, и полностью исключаются взаимодействия в одном уровне. При этом фунционал как бы перетекает из слоя в слой, чтобы оказаться точно на своем месте. Иными словами если функционал описанный на нижнем уровне нужен в соседнем классе, просто поднимем его выше.

Объявление функций

функция - это некоторый участок кода используемый как единица. Поскольку t является динамической структурой. Передав в качестве параметра t, мы уже не будем беспокоится о том какие именно аргументы нам нужно принять, мы будем добавлять данные по мере необходимости в один переданный параметр t. Аналогично, вернув t, мы сможем вернуть любой массив данных. Тогда мы объявим любую функцию так

t f_name (t args)
{

	return new t();
}

Более реальный пример отражающий суть работы с данными внутри функции

t f_func (t args)
{
	string some_str=args["some_str"].f_str();	//получаем некоторую строку
	DataTable tab=args["tab"].f_val<DataTable>();	//получаем текоторую таблицу
	t res=new t();
	
	...		//выполняем некоторую работу, в том числе наполняем результирующий t res
	
	res["some_val"]=new t(val);
	
	return res;
}

или так

t f_func (t args)
{
	int id_item=args["some_str"].f_def(0).f_val<int>();	//получаем некоторый id
	DataRow tab=args["row"].f_val<DataRow>();		//получаем текоторую строку
	
	...		//выполняем некоторую работу
	
	//формируем на лету и возвращаем результаты
	return new t()
	{
		{"some_str_val", str_val},
		{
			"data", new t()
			{
				{"val_1", val_1},
				{"val_2", val2}
			}
		}
	};
}

Пример функций

Примеры кода

About

Some classes to make you sharp more dynamic

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0