Перейти к публикации
  • Сейчас на странице   Всего пользователей: 7   (3 пользователя, 4 гостя)

Rooster

Программирование[11]

var  

286 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

(изменено)
Drakonian написал 2 минуты назад:
Just.Doit написал 3 минуты назад:
Drakonian написал 2 часа назад:

99% времени я пишу интеграционные тесты

как эти тесты устроены? 

тестируют бизнес сценарии которые затрагивают несколько разных модулей, иногда зависят от других ресурсов

или не понять суть вопроса

технически интересно

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


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
(изменено)
Just.Doit написал 22 минуты назад:
Drakonian написал 24 минуты назад:
Just.Doit написал 26 минут назад:
Drakonian написал 2 часа назад:

99% времени я пишу интеграционные тесты

как эти тесты устроены? 

тестируют бизнес сценарии которые затрагивают несколько разных модулей, иногда зависят от других ресурсов

или не понять суть вопроса

технически интересно

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

 

А ну смотри, эти тесты запускаются в процессе CI/CD, в этом же процессе создается временный docker container, туда же деплоится база данных с некими базовыми данными, паблишится код с ветки, запускаются тесты. Тесты можно запускать с разной изоляцией, наиболее частая изоляция это уровень теста - каждый тест это отдельная сессия с изначальными данными из БД. После того как тест отрабатывает происходит roll-back всех данных в БД.
Во время разработки тесты запускаю на локальном докер контейнере с той же изоляцией.

В самом тесте иницилизируешь все необходимые данные, пишешь тест который повторяет некий бизнес сценарий, причем желательно использовать тот-же ui, а не функции напрямую (это позволяет framework где есть возможность эмулировать UI), верифицируешь результат и не стоит забывать про негативные сценарии.

Как-то так, но я же не спец по тестированию, может у меня какой-то наивный или неправильный подход)


Изменено пользователем Drakonian
sB.Raven понравилось это

Поделиться сообщением


Ссылка на сообщение
Drakonian написал 11 часов назад:
Just.Doit написал 12 часов назад:
Drakonian написал 12 часов назад:
Just.Doit написал 12 часов назад:
Drakonian написал 14 часов назад:

99% времени я пишу интеграционные тесты

как эти тесты устроены? 

тестируют бизнес сценарии которые затрагивают несколько разных модулей, иногда зависят от других ресурсов

или не понять суть вопроса

технически интересно

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

 

А ну смотри, эти тесты запускаются в процессе CI/CD, в этом же процессе создается временный docker container, туда же деплоится база данных с некими базовыми данными, паблишится код с ветки, запускаются тесты. Тесты можно запускать с разной изоляцией, наиболее частая изоляция это уровень теста - каждый тест это отдельная сессия с изначальными данными из БД. После того как тест отрабатывает происходит roll-back всех данных в БД.
Во время разработки тесты запускаю на локальном докер контейнере с той же изоляцией.

В самом тесте иницилизируешь все необходимые данные, пишешь тест который повторяет некий бизнес сценарий, причем желательно использовать тот-же ui, а не функции напрямую (это позволяет framework где есть возможность эмулировать UI), верифицируешь результат и не стоит забывать про негативные сценарии.

Как-то так, но я же не спец по тестированию, может у меня какой-то наивный или неправильный подход)

 

круто, теперь понял

да, я тоже такие тесты люблю

Drakonian написал 11 часов назад:

может у меня какой-то наивный или неправильный подход)

ой забей

я с опытом (возрастом) начинаю понимать что нет каких-то "правильных" подходов

Drakonian понравилось это

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
By sees написал 07.12.2024 в 00:02:

Ещё бля про какой-то душняк про зум +- CTRL был, мол там у кого-то вёрстка съедет и пиздец. Я за целый год работы ни одной секунды в жизни не подумал об этой хуйне и всем поебать абсолютно.

ну я хз, я постоянно делаю на сайтах зум и многие тупо поломаны %)

 

причём делать особо ничего не надо, чтобы сделать зум "правильно"

можно тупо запретить ей быть адаптивной после некоторого момента, тогда она не сломается

Поделиться сообщением


Ссылка на сообщение

зум дефолтнаят хуйня на фронте
че вы удивляетесь так

scarppy понравилось это

Поделиться сообщением


Ссылка на сообщение

4 этапа на собес в яндекс :prichina_tryaski::prichina_tryaski::prichina_tryaski:  коллеги, жизненно?


 

Лучший

556253444__2022-05-05_175742556.png.9145729cd287d346bfdfa627f9d4fbed.png

Поделиться сообщением


Ссылка на сообщение
dolod777 написал 19 минут назад:

4 этапа на собес в яндекс :prichina_tryaski::prichina_tryaski::prichina_tryaski:  коллеги, жизненно?

недавно читал пост в телеге, чел проходил эти этапы проходил, потом добавили ещё этап с литкодом. но на него не попал, т.к. получил ок оффер с другой стороны. видимо знал, что примерно даст яша и решил не тратить силы на проверку

Поделиться сообщением


Ссылка на сообщение

Как думаете, лучше не связываться с криптой? Уже второй раз за месяц зовут в крипто-компанию аналитиком :hmm:


"Мне надлежит наслаждаться над временем…
пусть мир и ужаснется моей радости, и
грубость его не поймет смысла слов моих."

Рэйсбрук Удивительный

Поделиться сообщением


Ссылка на сообщение
MacJei написал 2 минуты назад:

Как думаете, лучше не связываться с криптой? Уже второй раз за месяц зовут в крипто-компанию аналитиком :hmm:

 

всё что я слышу о крипте "до жопы денег, надо туда" так что я хз. главное - не бухгалтером главным


 

Лучший

556253444__2022-05-05_175742556.png.9145729cd287d346bfdfa627f9d4fbed.png

Поделиться сообщением


Ссылка на сообщение
MacJei написал 1 час назад:

Как думаете, лучше не связываться с криптой

а какие риски то?


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Kurku написал 8 часов назад:
By sees написал 06.12.2024 в 23:02:

Ещё бля про какой-то душняк про зум +- CTRL был, мол там у кого-то вёрстка съедет и пиздец. Я за целый год работы ни одной секунды в жизни не подумал об этой хуйне и всем поебать абсолютно.

ну я хз, я постоянно делаю на сайтах зум и многие тупо поломаны %)

 

причём делать особо ничего не надо, чтобы сделать зум "правильно"

можно тупо запретить ей быть адаптивной после некоторого момента, тогда она не сломается

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

Поделиться сообщением


Ссылка на сообщение
Drakonian написал 13 часов назад:

член

тот самый 7см болт из анекдотов?

 

Поделиться сообщением


Ссылка на сообщение
madvlaydin написал 1 час назад:
Drakonian написал 14 часов назад:

член

тот самый 7см болт из анекдотов?

 

зато потом как достану 10см волыну все ахуеют

Поделиться сообщением


Ссылка на сообщение
Drakonian написал 08.12.2024 в 00:19:
Lotus написал 07.12.2024 в 23:50:
Drakonian написал 07.12.2024 в 23:06:

смотря какие тесты наверное

99% времени я пишу интеграционные тесты (не вижу много смысла в юнит тестах)
и трачу х2-х3 времени от разработки на это )

Для юнит тестов думаю число будет намного меньшим

:( чето я так заебался от этих тестов, код в кайф писать, а тесты это пиздец, еще хуева гора тестов с моделями в текстовых файлах и чето меняется приходится это везде менять, короче ебал я тесты в рот вот чо

 

ну у меня тут принято писать интеграционные и юниты на все подряд типо маперов, сервисов, контроллеров, дао, хуяйо, короче на все подряд

ну я такими тестами много багов отлавливаю, не раз было такое что пишу тест - он фейлится - смотрю действительно такой-то случай не учел  или опечатался или тупо ошибку сделал

 

тоже заебывают
но польза несомненная от них

но у меня щас халява, все тесты написал я
вот когда команда пишет тесты и чужие тесты фейлятся, а тебе надо в них разобрать вот это кромешный пиздец
тут с тобой согласен

пример типичного теста)
 

  Скрыть содержимое


[Test]
[HandlerFunctions('GenericConfirmationHandler,GenericMessageHandler')]
procedure PostRevenueLinesSalesInvoicesWithPartiallyProcessedCostLines()
var
	CDSProject: Record "BBW CDS dw_project";
	CDSTransaction: array[2] of Record "BBW CDS dw_transaction";
	CDSTransaction2: Record "BBW CDS dw_transaction";
	CDSPurchaseOrderNumber: array[2] of Record "BBW CDS dw_purchaseordernumber";
	RevenueLine: Record "BBW Revenue Line";
	Item: Record Item;
	CRMProduct: Record "CRM Product";
	CRMAccount: array[2] of Record "CRM Account";
	CRMAccount2: Record "CRM Account";
	Customer: array[2] of Record Customer;
	CDSRevenueLine: array[5] of Record "BBW CDS dw_revenueline";
	IntegrationTableMapping: Record "Integration Table Mapping";
	Transaction: Record "BBW Transaction";
	Customer2: Record Customer;
	SalesHeader: Record "Sales Header";
	SalesLine: Record "Sales Line";
	SalesInvoiceScheduling: Record "BBW Sales Invoice Scheduling";
	SalesInvoiceHeader: Record "Sales Invoice Header";
	SalesInvoiceLine: Record "Sales Invoice Line";
	CustLedgerEntry: Record "Cust. Ledger Entry";
	PurchAndPayableSetup: Record "Purchases & Payables Setup";
	CDSCostLine: array[5] of Record "BBW CDS dw_costline";
	Vendor: Record Vendor;
	TransactionLinesStatus: Codeunit "BBWT Transaction Lines Status";
	ItemInventoryByDefault: Codeunit "BBWT Item Inventory By Default";
	CRMCustomTables: Codeunit "BBWT CRM Custom Tables";
	SalesInvoiceCard: TestPage "Sales Invoice";
	SalesInvoiceSchedulingPage: TestPage "BBW Sales Invoice Scheduling";
	InvoiceScheduling: Enum "BBW Invoice Scheduling";
	TransactionNoFilter: Text;
	CustomerFilter: Text;
	I: Integer;
	J: Integer;
	N: Integer;
begin
	// [FEATURE] [CRM Integration Management] [GenerateSalesInvoicesFromRevenueLinesForeground]
	// [SCENARIO] GenerateSalesInvoicesFromRevenueLinesForeground() Generate Sales Invoices based on Sales Invoice Scheduling in foreground
	Initialize();
	LibraryVariableStorage.Clear();
	SetupCRM();
	InitProjectDimension();

	PurchAndPayableSetup.Get();
	PurchAndPayableSetup.Validate("BBW Enable PO Line Date", true);
	PurchAndPayableSetup.Modify(true);

	// [GIVEN] A Vendor coupled to CRM Account
	CreateCoupledVendorAndAccount(Vendor, CRMAccount2);

	//[GIVEN] Project in CRM
	CreateCDSProject(CDSProject, CRMAccount2.AccountId);

	// [GIVEN] Two Customers and CRM Accounts
	for I := 1 to 2 do begin
		Clear(CDSProject);

		LibraryCRMIntegration.CreateCoupledCustomerAndAccount(Customer[I], CRMAccount[I]);
		Customer[I].Validate("BBW Invoice Scheduling", InvoiceScheduling::Daily);
		Customer[I].Modify(true);

		//[GIVEN] Project in CRM
		CreateCDSProject(CDSProject, CRMAccount[I].AccountId);

		//[GIVEN] Create and synch ransaction to BC from CRM
		CreateCDSTransaction(CDSTransaction[I], CDSProject.dw_projectId);
		IntegrationTableMapping.SetRange(Name, 'BBWTRANSACTION');
		IntegrationTableMapping.FindFirst();
		CRMIntegrationTableSynch.SynchRecord(IntegrationTableMapping, CDSTransaction[I].dw_transactionId, true, false);

		//[GIVEN] Get result BC Transaction
		Transaction.SetRange(Project, CDSProject.dw_projectId);
		Transaction.FindFirst();

		CreateCDSPurchaseOrderNumber(CDSPurchaseOrderNumber[i], CRMAccount2.AccountId, CDSProject.dw_projectId);

		N := 5;
		for J := 1 to N do begin
			Clear(Item);
			Clear(CRMProduct);

			//[GIVEN] Create coupled Item and Product
			BindSubscription(ItemInventoryByDefault);
			LibraryCRMIntegration.CreateCoupledItemAndProduct(Item, CRMProduct);
			UnbindSubscription(ItemInventoryByDefault);

			//[GIVEN] Create CDS Revenue Line
			CreateCDSRevenueLine(CDSRevenueLine[J], CDSProject.dw_projectId, CDSTransaction[I].dw_transactionId, CRMProduct.ProductId);

			//[GIVEN] Synch CDS Revenue Line to BC
			IntegrationTableMapping.SetRange(Name, 'BBWREVENUELINE');
			IntegrationTableMapping.FindFirst();
			CRMIntegrationTableSynch.SynchRecord(IntegrationTableMapping, CDSRevenueLine[J].dw_revenuelineId, true, false);

			CreateCDSCostLine(CDSCostLine[j], CDSProject.dw_projectId, CDSTransaction[i].dw_transactionId, CRMProduct.ProductId, CDSPurchaseOrderNumber[i].dw_purchaseordernumberId, Format(CDSTransaction[i].dw_status), CDSTransaction[i].dw_servicedate);

			//Simulate that cost lines are partially processed into PO and PO was posted
			if J > 2 then begin
				CDSCostLine[j].Validate(dw_bcponumber, LibraryRandom.RandText(20));
				CDSCostLine[j].Modify();
			end;
		end;

		RevenueLine.SetRange("Transaction No.", Transaction."Transaction No.");
		Assert.AreEqual(N, RevenueLine.Count(), '');

		CustomerFilter += Customer[I]."No." + '|';
		TransactionNoFilter += Transaction."Transaction No." + '|';
	end;
	CustomerFilter := CustomerFilter.TrimEnd('|');
	TransactionNoFilter := TransactionNoFilter.TrimEnd('|');

	//[GIVEN] Sales Invoice Scheduling
	SalesInvoiceScheduling.Init();
	SalesInvoiceScheduling.Insert(true);
	SalesInvoiceScheduling.Validate("Customer Filter", CustomerFilter);
	SalesInvoiceScheduling.Validate("Invoice scheduling Filter", InvoiceScheduling::Daily);
	SalesInvoiceScheduling.Validate("Service Date Formula Filter", '..0D');
	SalesInvoiceScheduling.Validate(Active, true);
	SalesInvoiceScheduling.Modify(true);

	//[WHEN] Invoke and confirm Run once action
	LibraryDialogHandler.SetExpectedConfirm(ActionQst, true);
	LibraryDialogHandler.SetExpectedMessage(SynchSuccessLbl);
	SalesInvoiceSchedulingPage.OpenEdit();
	SalesInvoiceSchedulingPage.GoToRecord(SalesInvoiceScheduling);
	BindSubscription(CRMCustomTables);
	SalesInvoiceSchedulingPage.Runonce_promoted.Invoke();
	UnbindSubscription(CRMCustomTables);

	//[THEN] Simulate syncrhonize NOW
	Transaction.Reset();
	Transaction.SetFilter("Transaction No.", TransactionNoFilter);
	Transaction.FindSet();
	Assert.AreEqual(2, Transaction.Count(), '');
	repeat
		RevenueLine.SetRange("Transaction No.", Transaction."Transaction No.");
		RevenueLine.FindSet();
		repeat
			CRMIntegrationTableSynch.SynchRecord(IntegrationTableMapping, RevenueLine.RecordId(), true, false);
		until RevenueLine.Next() = 0;
	until Transaction.Next() = 0;

	//[THEN] Sales Invoices are created for each Customer and Sales Invoice No. is correctly updated to CRM
	Clear(RevenueLine);
	Customer2.SetFilter("No.", CustomerFilter);
	Customer2.FindSet();
	Assert.AreEqual(2, Customer2.Count(), '');
	repeat
		SalesHeader.SetRange("Document Type", SalesHeader."Document Type"::Invoice);
		SalesHeader.SetRange("Sell-to Customer No.", Customer2."No.");
		SalesHeader.FindSet();
		repeat

			SalesLine.SetRange("Document Type", SalesHeader."Document Type");
			SalesLine.SetRange("Document No.", SalesHeader."No.");
			SalesLine.FindSet();
			repeat
				RevenueLine.Get(SalesLine."BBW Revenue Line No.");
				CDSProject.SetRange(dw_projectnumber, SalesLine."BBW Project No.");
				CDSProject.FindFirst();
				Transaction.Get(SalesLine."BBW Transaction No.");
				Assert.AreEqual(CDSProject.dw_projectnumber, SalesHeader."BBW Project No.", '');
				Assert.AreEqual(SalesHeader."BBW Project No.", SalesLine."Shortcut Dimension 1 Code", 'Global Dimension 1 should be equal to project');
			until SalesLine.Next() = 0;

			//[WHEN] Sales Invoice is fully posted
			LibraryDialogHandler.SetExpectedConfirm(PostSalesInvoiceLbl, true);
			SalesInvoiceCard.OpenEdit();
			SalesInvoiceCard.GoToRecord(SalesHeader);
			TransactionLinesStatus.SetHasUnpostedCostLines(true);
			BindSubscription(TransactionLinesStatus);
			SalesInvoiceCard.Post.Invoke();
			UnbindSubscription(TransactionLinesStatus);

			//[THEN] Posted Sales Invoice is created
			SalesInvoiceHeader.SetRange("Pre-Assigned No.", SalesHeader."No.");
			SalesInvoiceHeader.FindFirst();

			//[THEN] Transaction status should not updated to posted for each transaction because some unprocessed cost lines exist
			SalesInvoiceLine.SetRange("Document No.", SalesInvoiceHeader."No.");
			SalesInvoiceLine.FindSet();
			repeat
				Transaction.Get(SalesInvoiceLine."BBW Transaction No.");

				//Because we cant run job queues in unit tests we simulate transaction synchronization manually
				IntegrationTableMapping.SetRange(Name, 'BBWTRANSACTION');
				IntegrationTableMapping.FindFirst();
				CRMIntegrationTableSynch.SynchRecord(IntegrationTableMapping, Transaction.RecordId(), true, false);

				CDSTransaction2.SetRange(dw_name, Transaction."Transaction No.");
				CDSTransaction2.FindFirst();

				Assert.AreEqual(CDSTransaction2.dw_status::Received, CDSTransaction2.dw_status, 'status must be received!');
			until SalesInvoiceLine.Next() = 0;

			//[WHEN] Customer Ledger Entry Generated
			CustLedgerEntry.SetRange("Document Type", CustLedgerEntry."Document Type"::Invoice);
			CustLedgerEntry.SetRange("Document No.", SalesInvoiceHeader."No.");
			CustLedgerEntry.SetRange("Posting Date", SalesInvoiceHeader."Posting Date");
			CustLedgerEntry.SetRange("Customer No.", SalesInvoiceHeader."Sell-to Customer No.");
			CustLedgerEntry.FindFirst();

			//[THEN] Project No. and Id filled in
			CDSProject.SetRange(dw_projectnumber, SalesLine."BBW Project No.");
			CDSProject.FindFirst();
			Assert.AreEqual(SalesHeader."BBW Project No.", CustLedgerEntry."BBW Project No.", ',CustLedgerEntry."BBW Project No."');
			Assert.AreEqual(CDSProject.dw_projectId, CustLedgerEntry."BBW Project Id", 'CustLedgerEntry."BBW Project Id"');
			Assert.AreEqual(SalesInvoiceHeader."Your Reference", CustLedgerEntry."Your Reference", 'Customer PO No. is not corret');

			Assert.AreEqual(SalesHeader."BBW Project No.", SalesHeader."Shortcut Dimension 1 Code", 'Global Dimension 1 should be equal to project');
		until SalesHeader.Next() = 0;
	until Customer2.Next() = 0;
end;

 

 

 

Фу бляяяя 


caac247e28.png

Поделиться сообщением


Ссылка на сообщение
(изменено)

@Ritsu twit Делай нормальный шаблон, который похож на сайт, где экранов хотя бы 3-4, с разными элементами. Шаблоны в инете можно найти. А вообще, лучший пет проет будет, это если сделаешь многостраничкник какой нибудь. А лучше сверстаешь инет магаз. Заодно и скилы свои проверишь. Ну я бы по лучше бы вникнул в методологию бэм. Либо вообще не юзай его, если не понимаешь пока что и впадлу разбираться.

 

P.S.

Что это за высерные padding-left у тебя стоят на заголовке и подзаголовке? И нахуя?

362624720_14-12-2024232152.jpg.d0dcf657cd7e73f69c191934a05ec2da.jpg

P.S.S. Вообще такое чувство, что ты просто взял готовых решений и налипил их в одну солянку. Эт хуйня полная


Изменено пользователем Zellar

 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение
(изменено)
Zellar написал 3 часа назад:

Делай нормальный шаблон, который похож на сайт, где экранов хотя бы 3-4, с разными элементами. Шаблоны в инете можно найти. А вообще, лучший пет проет будет, это если сделаешь многостраничкник какой нибудь. А лучше сверстаешь инет магаз. Заодно и скилы свои проверишь. Ну я бы по лучше бы вникнул в методологию бэм. Либо вообще не юзай его, если не понимаешь пока что и впадлу разбираться.

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

Zellar написал 3 часа назад:

P.S.S. Вообще такое чувство, что ты просто взял готовых решений и налипил их в одну солянку. Эт хуйня полная

Да, брал готовые решения, но их приходилось сильно перелопатить чтобы они корректно работали. Больше всего времени ушло именно на это. А почему это хуйня?

Zellar написал 3 часа назад:

Что это за высерные padding-left у тебя стоят на заголовке и подзаголовке? И нахуя?

padding-left равен, компенсирует letter-spacing. 


Изменено пользователем Ritsu twit

 

 

doc137399519_225147917?hash=61dbe6de1d450a42e7&dl=3361c54861ae5a77cb&wnd=1

Поделиться сообщением


Ссылка на сообщение
Ritsu twit написал 10 часов назад:
Zellar написал 13 часов назад:

Делай нормальный шаблон, который похож на сайт, где экранов хотя бы 3-4, с разными элементами. Шаблоны в инете можно найти. А вообще, лучший пет проет будет, это если сделаешь многостраничкник какой нибудь. А лучше сверстаешь инет магаз. Заодно и скилы свои проверишь. Ну я бы по лучше бы вникнул в методологию бэм. Либо вообще не юзай его, если не понимаешь пока что и впадлу разбираться.

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

Zellar написал 13 часов назад:

P.S.S. Вообще такое чувство, что ты просто взял готовых решений и налипил их в одну солянку. Эт хуйня полная

Да, брал готовые решения, но их приходилось сильно перелопатить чтобы они корректно работали. Больше всего времени ушло именно на это. А почему это хуйня?

Zellar написал 13 часов назад:

Что это за высерные padding-left у тебя стоят на заголовке и подзаголовке? И нахуя?

padding-left равен, компенсирует letter-spacing. 

 

1. Бэм это не только нейминг. Ты не особо понял что это вообще. Советую по лучше разобраться. На твоем пет проекте ты и не увидишь преимущества бэм. Поэтому я советую сверстать какой нибудь большой инет магаз, где есть множество похожих блоков, но которые отличаются в мелочах. Если ты все сделаешь правильно, то ты сможешь менять элементы местами, при этом верстка не будет ломаться.

 

2. Потому что берешь готовые решения но не особо понимаешь как сделать такое самостоятельно. У тебя в будущем могут попросить тоже сделать что нибудь не стандартное, но ты не сможешь это сделать быстро. Поэтому видишь какую то штуку, попробуй сначала самостоятельно сделать ее. Если не можешь, ищи пробелы в знаниях, изучай и пробуй снова. Например тот же кубик у тебя работает не очень. Он прикольно при наведении двигается, но ты не подумал как это будет на мобилках работать. Как пользователь поймет, что надо нажать на кубик, чтобы появилась ссылка? Никак. В инете есть много прикольных штук, но которые работают только на компе, а на мобилках шляпа полная как раз из-за того, что элементы заточены на взаимодействие только по наведению мышки.

 

3. Окей я понял. Значит ты выбрал не тот шрифт для такого. Ты превысил значения letter-spacing для этого шрифта. letter-spacing не должен давать расстояние для последней буквы. Представь что в шрифте у каждой буквы есть ячейка. С помощью letter-spacing ты каждой букве в ячейке добавляешь расстояние. И вот то расстояние которое наезжало на другие ячейки букв по сути у тебя добавилось после последней буквы. В safari например движок браузера может по другому отрисовать это поведение, я конечно не тестил там, может и все нормально. Ну как исправление пойдет, окей. Но если тебе нужна надпись именно в таком стиле, то лучше поискать шрифты которые именно это и делают

 

P.S.
Ты не пофиксил баг, который бросается в глаза

411433858_15-12-2024135124.jpg.73cc600c87a6164f911acdf87d05567e.jpg


 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение
Zellar написал 1 час назад:

1. На твоем пет проекте ты и не увидишь преимущества бэм. 

как и со всеми практиками бигтеха - возможно они ему и не нужны, если он не увидет преимущества на проектах своего размера...

думайте

 


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 2 часа назад:
Zellar написал 3 часа назад:

1. На твоем пет проекте ты и не увидишь преимущества бэм. 

как и со всеми практиками бигтеха - возможно они ему и не нужны, если он не увидет преимущества на проектах своего размера...

думайте

 

Ну не совсем. Ты можешь заготовки сделать для других проектов. И с помощью бэм это намного удобнее. То есть даже не в бигтехе это юзабельно


 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение
(изменено)
Zellar написал 11 часов назад:

1. Бэм это не только нейминг. Ты не особо понял что это вообще. Советую по лучше разобраться. На твоем пет проекте ты и не увидишь преимущества бэм. Поэтому я советую сверстать какой нибудь большой инет магаз, где есть множество похожих блоков, но которые отличаются в мелочах. Если ты все сделаешь правильно, то ты сможешь менять элементы местами, при этом верстка не будет ломаться.

Услышал, дельно. Мб есть примеры макетов что подразумеваешь, которые позволяют прочувствовать всю бэм усладу.
 

Zellar написал 11 часов назад:

2. Потому что берешь готовые решения но не особо понимаешь как сделать такое самостоятельно. У тебя в будущем могут попросить тоже сделать что нибудь не стандартное, но ты не сможешь это сделать быстро. Поэтому видишь какую то штуку, попробуй сначала самостоятельно сделать ее. Если не можешь, ищи пробелы в знаниях, изучай и пробуй снова. Например тот же кубик у тебя работает не очень. Он прикольно при наведении двигается, но ты не подумал как это будет на мобилках работать. Как пользователь поймет, что надо нажать на кубик, чтобы появилась ссылка? Никак. В инете есть много прикольных штук, но которые работают только на компе, а на мобилках шляпа полная как раз из-за того, что элементы заточены на взаимодействие только по наведению мышки.

Твоя правда, с кубом схалтурил под мобилки, иначе бы пришлось от него отказаться, а время он уже схавал. Хотел уже поставить точку с данным пэт-проектом и подвигаться дальше. По поводу нестандартных компонентов, мне на данный момент видится более корректным путь, когда ты находишь компонент и допиливаешь его под себя попутно изучив больше половины его структуры и логики. Да это долго, но и выдать что-то подобное самому, видится мне каким-то холостым процессом, особенно если учитывать, что эти компоненты больше из области искусства и импровизации, чем структурно понятные. Такое в голову может и не прийти никогда, а кто-то сделал. Но это если говорить о чем-то экстравагантном, единичном. Стандартные компоненты, стараюсь писать сам.

 

Zellar написал 11 часов назад:

3. Окей я понял. Значит ты выбрал не тот шрифт для такого. Ты превысил значения letter-spacing для этого шрифта. letter-spacing не должен давать расстояние для последней буквы. Представь что в шрифте у каждой буквы есть ячейка. С помощью letter-spacing ты каждой букве в ячейке добавляешь расстояние. И вот то расстояние которое наезжало на другие ячейки букв по сути у тебя добавилось после последней буквы. В safari например движок браузера может по другому отрисовать это поведение, я конечно не тестил там, может и все нормально. Ну как исправление пойдет, окей. Но если тебе нужна надпись именно в таком стиле, то лучше поискать шрифты которые именно это и делают

Не знал что это от шрифта зависело, думал они все так себя ведут, понял про ячейки. Решать проблему на уровне шрифта, если нужен приличный letter-spacing. С другой стороны, могу уменьшать расстояние между буквами как гармошку, исходя из размера экрана. Шрифты с большим letter-spacing, не будут меня кусать в обратную сторону?
 

Zellar написал 11 часов назад:

P.S.
Ты не пофиксил баг, который бросается в глаза

411433858_15-12-2024135124.jpg.73cc600c87a6164f911acdf87d05567e.jpg

Ага, зафиксил. https://egorloiola.github.io/gio-full/


Изменено пользователем Ritsu twit

 

 

doc137399519_225147917?hash=61dbe6de1d450a42e7&dl=3361c54861ae5a77cb&wnd=1

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...