یک نکته درباره یک توسعه دهنده بودن این است که کد شما فقط توسط توسعه دهندگان دیگر دیده میشود. این یک واقعیت است؛ برنامه نویسان کدی مینویسند که مورد نظر برنامه نویسان دیگر است. با این که ما همگی خاص هستیم، اما برخی تجربیات مشابه را نیز داریم. حال که میدانیم ما با زبان مشابهی صحبت میکنیم، بیاید از آن استفاده کنیم و برنامه نویسی را حتی لذت بخشتر کنیم.
اولین قانون مبارزه
همیشه زمان و مکان مناسبی برای اشاره به محصولات فرهنگی در کد خود وجود دارد. منظورم این است که نباید نام متغیرهای خود را چیزی مانند vadar_is_cool بگذارید. (Vadar نام یکی از شخصیتهای سری فیلمهای جنگ ستارگان است) حتی با وجود این که این نام از x بهتر است. مکان صحیح برای این که بگذارید تصوراتتان جریان پیدا کنند، seedها، دادههای test و سندنگاریها هستند. هیچ چیز آزاردهندهتر از این نیست که ببینید دیتابیس شما با نامهایی مانند qweqweqwe پر شده است، یا این که در هنگام خطایابی testها به User1 یا User2 بر بخورید. آیا بهتر نمیشد اگر که هر کاربر یک نام قانونی و مشخص داشت؟ اگر توضیحات کلاسیک مانند asd، چیز دقیقتر و واضحتری بودند چه؟
تولید دادههای واقعی فقط نوشتن نام کاراکترهای مورد علاقه یا سخنهای خندهدار در کد خود نیست. بخش مهم این است که مقادیر معتبری در فیلدهای خود مانند ایمیلها، آدرسها، رمزعبورها، شماره کارتها یا حتی موقعیتهای جغرافیایی داشته باشید. شاید بگویید که این کار زیادی به نظر میرسد. نگران نباشید! در این دنیای الماسهای Ruby، یک گنج بی پایان به نام Faker وجود دارد.
از Faker استفاده کنید، تا نام مورد نظر را بسازید
زیبایی Faker این است که استفاده از آن بسیار ساده است. شما به راحتی آن را نصب میکنید (gem install faker) و «require ‘faker’» را به فایلی که میخواهید آن را با مقداری داده پر کنید، اضافه میکنید.
دیتابیس خود را پر کنید
فرض کنید که شما یک مدل User دارید و به مقداری داده برای محیط گسترش خود نیاز دارید. بیایید کمی با فایل seeds.rb خوش بگذرانیم. سادهترین راه برای تولید مقداری داده واقعی، با چیزی به مانند این کد است:
User.create(name: "Bruce Wayne", birth_date: "1939-03-30", description: "I'm Batman")
User.create(name: "Harry Potter", birth_date: "1980-07-31", description: "Let's kill Voldi")
User.create(name: "Eleven", birth_date: "1971-01-01", description: "Eggos?")
اما آیا به نظر نمیرسد که این روش کار بسیار کمتری میطلبد؟
require 'faker'
10.times do
User.create(
name: Faker::GameOfThrones.unique.character,
birth_date: Faker::Date.birthday(16, 65),
description: Faker::GameOfThrones.unique.quote
)
End
استفاده از Faker تنها به علت آسان بودن در حین تولید دادههایی که کار با آنها آسان است، عالی نیست. استفاده از آن عالی است، زیرا مجبور نیستید که درباره نامهایی فکر کنید که شما را جلوی دیگر اعضای گروه خجالتزده نکنند.
آزمایش
آزمایش کردن، پر هیجانترین کار نیست. زیاد چالش برانگیز نیست و شما همینطور موقعیتهای آزمایش تکراری را مینویسید. چیزی که آن را حتی کمتر جذاب میکند، ساخت factoryهای خسته کننده است.
#spec/factories/user.rb
FactoryBot.define do
factory :user do
sequence :name do |i|
"User_#{i}"
end
end
end
چه چیزی درباره این مسئله جالب است؟
خوشبختانه، آزمایشات یک مکان دیگر هستند که تمام دوستان محصولات فرهنگی شما (مانند Vadar) میتوانند به میان بیایند. در اینجا، وضعیت موجود بسیار مشابه به تولید seedهای دیتابیس است، و بله، شما در اینجا هم میتوانید از Faker استفاده کنید. بیایید یک آزمایش ساده بنویسیم.
# spec/factories/user.rb
FactoryBot.define do
factory :user do
name { Faker::BackToTheFuture.character }
birth_date { Faker::BackToTheFuture.date }
description { Faker::BackToTheFuture.quote }
end
end
جالب است، نه؟
کار خود را به نمایش بگذارید
زمانی فرا خواهد رسید که شما باید اسنادی برای کد زیبای خود بنویسید. چرا برخی الماسهای مخفی برای دوستان توسعه دهنده خود اضافه نکنیم؟ حال که شما مشتاق شدهاید، باید شما را نا امید کنم...
در اینجا نمیتوان از Faker استفاده کرد. نوشتن اسناد یک آزمایش واقعی برای خلاقیت شماست. پس دنیای خیالی مورد علاقه خود را انتخاب کنید، چند wiki طرفداران را باز کنید و شروع به کار نمایید. آیا آن لبخند اتفاقی که برنامه نویسان در مقابل کامپیوتر انجام میدهند را دیدهاید؟ مطمئن باشید که آن لبخند به علت یک نام مانند Vadar است که در بالا به آن اشاره شد.
از آن پس را به شما میسپارم
جمله بالا آشنا به نظر میرسد، نه؟ (به انگلیسی: Where we go from there is a choice I leave to you) البته که آشناست، این جمله از فیلم Matrix است. قرار دادن اشارات به محصولات فرهنگی فقط درباره ساخت جک نیست. ما درباره مواردی که میشناسیم، هیجان زده میشویم. این موارد باعث میشوند که احساس راحتی به ما دست دهد. پس چرا کمی از این حس خوب را به کد خود ندهیم؟
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید