Pull to refresh

Comments 13

omg шаблоны в Go — это такой дичайший отстой, что их даже врагам народа да террористам на дальних подступах не гуманно впаривать. Не дебажатся, не декомпозируются, не типизируются, вообще ни как не проверяются. Использовать их в серьёзном продакшене — чистое безумие. Используйте github.com/valyala/quicktemplate будет вам счастье

В остальном материал статьи — очередное бессмысленное перетирание из пустого в порожнее о том, как написать хелуворлд на Го, информационной контент которого укладывается в пол экрана оф. доков по пакету net/http
Используйте github.com/valyala/quicktemplate будет вам счастье
Имхо на JSP похоже, это тоже не сахар, особенно в плане поддержки и развития проекта.

Если говорить про веб, то на мой взгляд, Go не хватает своей приличной реализации XSLT. Если бы она была бы (без использования exec), то многие небольшие вещи для веба можно было бы делать проще, читабельнее и быстрее.
Не слушайте его, я например наоборот много полезного узнал из статьи. В свое время прочитал книжку по Go, но хотелось увидеть какое-то живое (но в то же время простое) приложение, чтобы подтвердить себе что «вот именно так пишутся приложения на Go, именно такие пакеты сейчас используются, именно такие походы сейчас более-менее правильные и т.д.». Это как раз то что нужно, простое реальное приложение на Go, не особо замудреное. Спасибо за статью.
В остальном материал статьи — очередное бессмысленное перетирание из пустого в порожнее о том, как написать хелуворлд на Го

Я увидел эту статью в личном бложике программиста из Нигерии, не думаю, что она так сразу попадается новичкам, которые хотят изучать Go, а между тем, материал в ней изложен понятно и последовательно. Видно, что автор искренне хочет донести эти простые вещи простыми словами. И у него это получается, почему бы и не запилить перевод статьи для удобства восприятия?
От jsp и asp/asp.net принципиально отличается тем, что не динамический html, а генератор кода на Go. Нет движка сервлетов с магическими диррективами. На quicktemplate вы пишете обычные Go функции и методы, создающие строки текста по определённым правилам.

Не соглашусь с Вами. Для xslt не требуется какой-то специальной поддержки. Можно использовать стандартные шаблоны Go, производящие xslt с динамическим связыванием. Можно создавать XSLT с помощью quicktemplate.
Это наверное был ответ на мое сообщение.

Я говорил про XSL трансформер. Не надо «генерить» шаблоны, их пишет фронтендщик (или при миграции проекта переносит со старого).
Трансформеру дают на вход xml и готовый xsl шаблон, а на выходе получают то, что описано в шаблоне (xhtml, xml, да хоть pdf). С минимальными танцами. Вот это было бы супер.
Да, я по ошибке написал не туда.

Не могли бы вы показать пример искомой либы на другом языке? Если фронтендщик всё разверстал и нужно только правильно приготовить XML, то вроде проблем с Go не должно быть (если я правильно понял о чём речь)
Ну есть два титана: Xalan и Saxon, но есть и некоторое кол-во других реализаций, скажем так, менее популярных по ряду причин, но по моему опыту, экстремально производительных. Некоторые из них умеют компилировать шаблоны в код (в java классы например). Вот нужно что то такое же. И чтобы не прыгать с бубном, как например в случае с ratago, устанавливая для него libxml и тп.
Синтаксис вроде терпим, хоть и без женириков, но онанистское апи (bytes to buffer по 10 раз туда сюда например) чистая боль.
Если у вас есть какие-либо вопросы относительно этого туториала, оставьте комментарий ниже, и я перезвоню вам.

В го есть указатели?
Как сложную структуру с разнородным содержимым(байты инты и пр) разыменовывать по указателю?
Допустим то же самое, но на голанге:
Заголовок спойлера
typedef struct{
	int a;
	int b;
}mux_struct;

#include "stdio.h"

int main(int argc, const char * argv[]) {

	char buf[sizeof(int)*2];
	
	buf[0] = 0x12;
	buf[1] = 0x34;
	buf[2] = 0x56;
	buf[3] = 0x78;
	buf[4] = 0xab;
	buf[6] = 0xcd;
	buf[7] = 0xef;
	buf[8] = 0xff;
	
	mux_struct *mx = (mux_struct*)(buf);
	
	printf("0x%x\n", mx->a);
	printf("0x%x\n", mx->b);
	
}


?

ПС. пример намеренно простой.
Без unsafe можно сделать так:
mx:= mux_struct{}
err := binary.Read(buf, binary.BigEndian, &mx)

Простите, но в 2019 году?
Таких примеров на Хабре было лет 5 назад полным-полно. Да, это было логично тогда.
Но сейчас — хотелось бы более хитрые ньюансики в подобной статье.
Отлично! Для новичков самое оно, попробовать и разбираться с Go дальше, спасибо!
Sign up to leave a comment.

Articles