В случае с низким и высоким уровнем практически всегда так: высокий уровень удобней. А низкий надежней. И не понимая низкого, использовать высокий удобней, но не всегда эффективней. Это как и с тем же Реактом. Он во многом удобен, но бывают задачи, когда на нем ты их просто не решишь и надо работать с DOM напрямую. И TypeScript - безусловно удобней. Но бывает так, что его приходится нагибать, чтобы он понял что ты от него хочешь. Технически работает все, а он понять ничего не может.

Ассемблер - это, конечно, круто, но имхо более эффективно использовать С/С++ и webassembly https://habr.com/ru/post/342180/ Уровень практически ассемблера, но гораздо удобнее.

Всем привет! Сегодня у меня великая радость из-за пущего пустяка - Hello world! :) То есть я написал мелку программку, окторая при выполнении пишет "Hello world". Но великая радость из-за того, что я шел к этому больше 10 лет :) Серьезно. Все потому что она на ассемблере. То есть первые попытки были еще более 10 лет назад, но к своему стыду я не мог даже компилятор установить (хотя в той же убунте есть свой компилятор ассемблера из коробки). И вот сегодня я опять взялся за эксперименты (видимо весеннее психическое обострение, хоть и не весна сейчас (хоть и за окном плюсовая температура и дождь)), и таки получилось что-то сделать :) Отдельное спасибо за это Андрею Викторовичу Столярову, который написал учебник по NASM и активно отвечает на вопросы на своем сайте. http://www.stolyarov.info/books/asm_unix Благодаря этому материалу я таки сделал первые шаги и очень рад :) А пишу не только потому что рад, но и потому что хотел раскрыть малоочевидную, но сильную сторону package.json - он годится не только для запуска JS-скриптов, но и в принципе является инструментов для запуска любых скриптов, в том числе и bash. Казалось бы, при чем тут package.json и ассемблер? Поясню: для компиляции кода и запуска конечной программы надо выполнить в терминале пару команд. При этом из-за того, что попутная библиотека написана для 32битной архитектуры, а у меня 64, приходится еще флаг передавать. Пока экспериментируешь, еще ничего, но через день уже забудешь и опять надо гуглить решение. В данной ситуации логично иметь возможность куда-то записать нужные команды и легко их потом вызывать. Часто для этого используют make + Makefile, но у меня мало стимула изучать еще и эту технологию, поэтому я взял то, что итак знаю. И вот что получилось: { "name" : "NASM-examples.Hello-world" , "scripts" : { "start" : "./build/main" , "build" : "yarn compile && yarn ld" , "compile" : "nasm -f elf main.asm -o build/main.o" , "ld" : "ld -m elf_i386 build/main.o -o build/main" } } Теперь можно выполнять в терминале вот так: Удобно :) Если кому это направление тоже интересно, исходники закинул сюда: https://github.com/Fi1osof/NASM-examples

А за основу имело смысл взять вот эту страницу: https://github.com/freecode-academy/freecode.academy/blob/master/pages/technologies/%5Bid%5D.tsx Ведь у нее такой же роутинг как и у тебя - по id. Можно его страницу буквально брать 1:1 и просто заменить Technology на Beer https://github.com/freecode-academy/freecode.academy/blob/master/src/pages/Technologies/Technology/index.tsx Запрос тоже по образу и подобию можешь воткнуть https://github.com/freecode-academy/freecode.academy/blob/master/src/pages/Technologies/Technology/gql/technology.graphql. Затем выполни yarn generate:types, и если ОК выполнится, у тебя будет метод для запросов useBeerQuery. Все, дальше дело техники: получи данные и выведи в нужном тебе виде. Пробуй. Если что не так, выливай на гитхаб и маякуй.

И лучше не все в мастер сразу делай, а выноси в логические бранчи и пуши на гитхаб, чтобы можно было видеть что ты делаешь, ревьюить, скачивать себе править и т.п.

Понял, что не там пишу код страницы и перенес в src/pages/Beer/index.tsx А в [id].tsx оставил export { default } from 'src/pages/Beer'

У меня задачу выполнить получилось, но явно через точкуЖ, нужен совет, как вывести поля без перебора полученного массива - ведь мы знаем, что придет только один объект, по запрашиваемому id. Получившийся код [id].tsx такой: Предлагаю пробежсть по коду на предмет что есть что. ----- ----- Здесь мы получаем id из урла и пихаем в idbeer. Объявление переменной связано с желанием избежать ругани ts на не сообветствие типов данных. Изначально было where: { id: query.id, }. Дальше потребовалось перебрать массив и быбрать первый объект, что явно какая-то дичь. А как не дичь - ищу) Нужна помощь!

Всем привет! Закрыл задачу, добавил возможность в топики загружать картинки. Попутно записал почти 3 часовое видео. В нем подробно разобран каждый шаг, включая работу с гитом. Кто пытается освоить реакт, настоятельно рекомендую к просмотру, а так же разбору коммита. Но задача решена не полностью. В конце видео видно косяк (картинка во всплывашке не сохраняет пропорции). К сожалению, моих знаний в CSS не хватило чтобы с наскоку победить эту проблему, и я решил оставить как есть и поставить отдельную задачу (надо же материал для учебы оставлять :)). Надеюсь кто-нибудь решит и отправит ПР. По идее там не дофига делов.