داده های ساختگی (Dummy data) در روبی، پرل و پایتون — راهنمایی از صفر تا صد
اگر مشغول ساخت یک برنامه وب هستید و به اطلاعات واقعیتری برای بررسی دقیق برنامه خود نیاز دارید. اگر میخواهید ببینید تابعهای اعتبار سنجی برنامهتان به درستی کار میکنند یا نه و اگر میخواهید مطمئن شوید که برنامه شما در عمل پاسخگو خواهد بود. در هر صورت تنها مشکل این است که نمیتوانید از دادههای دنیای واقعی استفاده کنید و باید از دادههای ساختگی بهره بگیرید.
محدودیتهای حقوقی
موارد اخلاقی و حقوقی زیادی هستند که باید به این منظور در نظر گرفت. در واقع در برخی حوزههای قضایی، موانع حقوقی جدی برای استفاده از دادههای دنیای واقعی در محیط توسعه وضع شده است. برای نمونه میتوان به قوانین بریتانیا اشاره کرد.
قانونی به نام قانون حافظت از داده مصوب 1998 وجود دارد که به وضوح بیان کرده است شرکتها در چه موقعیتهایی مجاز هستند اقدام به مدیریت دادههای ذخیره شده بکنند:
دادههای شخصی تنها میبایست با یک یا چند هدف کاملاً مشخص و قانونی جمعآوری شوند و نمیبایست در هر گونه مقاصد ناسازگار با منظوری که گردآوری شدهاند، مورد استفاده قرار گیرند.
به بیان دیگر دادهها تنها میبایست در چارچوب مورد توافق با شخصی که دادههایش را در اختیار شرکت گذارده است مورد استفاده قرار گیرند و البته استثناهای زیادی نیز در این خصوص وجود دارند. در نتیجه غالباً وضع بدین صورت است که امکان استفاده از دادههای شخصی در مقاصد تست یا محیط توسعه وجود ندارد. بنابراین چگونه میتوان این مشکل را رفع کرد؟
راهحل کار آسان است؛ میبایست دادههای جعلی درست کنید. اما اگر لازم باشد حجم بالایی از دادههای واقعگرایانه تولید کنیم چطور؟ خوشبختانه چند کتابخانه به نام Faker وجود دارند که اطلاعات شخصی ساختگی را به طور برنامهنویسی شده تولید میکنند. این اطلاعات شامل نام و نام خانوادگی، نشانی ایمیل و شماره تلفن افراد است.
در این مقاله به شما نشان میدهیم که چگونه میتوانید از این کتابخانهها در چارچوب چند زبان رایج که شامل روبی، پرل، پایتون و جاوا اسکریپت است، استفاده کنید.
روبی
شاید شما نیز یکی از طرفداران جدی روبی باشید. این زبان علاقه بسیاری از هوادارانش را برانگیخته است و شامل یکی از بهترین نرمافزارهای مدیریت بسته، جامعه توسعهدهندگان پذیرا و اکوسیستم سالمی از کتابخانههای شخص ثالث است. همچنین یادگیری آن به طرز شگفتآوری آسان است.
برای این که روش کار کتابخانه Faker برای روبی را بیاموزید، در ابتدا میبایست اطمینان حاصل کنید که RubyGems را نصب کردهاید. میتوانید فایل باینری پلتفرم توسعه خود را در وبسایت رسمی RubyGems بیابید. سپس Faker را با استفاده از خط فرمان نصب کنید:
gem install faker
ممکن است لازم باشد آن را به عنوان کاربر root نصب کنید. در این صورت از دستور زیر استفاده نمایید:
sudo gem install faker
سپس ویرایشگر متنی مورد علاقه خود را باز کرده و برخی نامهای جعلی ایجاد کنید:
require 'faker' puts Faker::Name.name
بنابراین ماژول faker را وارد کردهایم و سپس برخی از نامها را نمایش میدهیم. زمانی که این دستور را اجرا کنید، با چیزی شبیه زیر مواجه خواهید شد:
اینک نوبت آن است که موارد دیگری را اضافه کنیم. در ادامه برخی اطلاعات در خصوص شمارههای کارت اعتباری ایجاد میکنیم که از نظر الگوریتم معتبر هستند. همچنین نشانیهای ایمیل و آدرس منزل افراد را تولید میکنیم. بنابراین خطوط زیر را اضافه کنید:
puts Faker::Address.street_address puts Faker::Business.credit_card_number puts Faker::Internet.email
دوباره آن را اجرا کنید تا چیزی شبیه تصویر زیر را مشاهده کنید:
پرل
پرل نمرده است. با این که پرل زبانی نیست که چندان مد روز باشد؛ اما هنوز طرفداران خود را دارد. جای شگفتی نیست که Faker برای پرل نیز پورت شده است. در ادامه طرز کار آن را توضیح میدهیم.
ابتدا باید آن را نصب کنید. فرض میکنیم شما قبلاً پرل و CPAN را روی رایانه خود نصب کردهاید. اگر چنین نیست، نصب کنید. اگر از ویندوز استفاده میکنید؛ توصیه میکنیم که Strawberry Perl را نصب کنید که پیادهسازی کاملتر و با حمایت جامعه پرل برای ویندوز XP تا 8.1 است. در خط فرمان دستور زیر را اجرا کنید:
cpan Data::Faker
احتمالاً رمز عبور کاربر root از شما سؤال خواهد شد. سپس ویرایشگر متنی مورد علاقه خود را باز کرده و فایلی به نام data.pl ایجاد کنید. درون این فایل خطوط زیر را درج نمایید:
use Data::Faker; my $faker = Data::Faker->new(); print $faker->name."\n"; print $faker->street_address."\n"; print $faker->email."\n";
معنی کد فوق تا حدود زیادی واضح است. ابتدا کتابخانههای Data::Faker را ایمپورت کردهایم؛ سپس وهلهای از شیء Faker را ساخته و یک نام، نشانی منزل و ایمیل را نمایش دادهایم. ممکن است متوجه شده باشید که شماره کارتهای بانکی را ایجاد نکردهایم. دلیل این مسئله آن است که نسخه پورت شده پرل به مقدار زیادی محدودتر از نسخه روبی است.
زمانی که کد فوق را اجرا کنید، با صحنهای شبیه تصویر زیر مواجه خواهید شد.
پایتون
پایتون یک زبان محبوب است که افراد زیادی به کدنویسی در آن میپردازند. اگر مایل هستید آن را امتحان کنید، پیشنهاد میکنیم از این آموزش فرادرس استفاده نمایید.
کتابخانه Faker برای این زبان محبوب نیز پورت شده است. این نسخه با توجه به امکاناتی که برای ساختن اطلاعات در ارتباط با مکانهای و کشورهای مختلف در اختیار شما میگذارد، حالتی منحصربهفرد دارد. در ادامه روش استفاده از آن را توضیح دادهایم.
در ابتدا Faker را نصب کنید. نام نسخه آن برای پایتون به صورت fake-factory است. میبایست pip و python بر روی رایانه شما نصب شده باشند. اگر چنین نیست، نصب کنید.
pip install fake-factory
سپس ویرایشگر متنی را باز کرده و خطوط زیر را به آن اضافه کنید:
from faker import Factory fake = Factory.create() print(fake.name()) print(fake.street_address())
آن را اجرا کرده و نتیجه را ببینید:
اما اگر بخواهیم از مکانهای دیگری که صحبتش را کردیم؛ استفاده کنیم چه کار باید انجام دهیم؟ فرض کنید میخواهیم اطلاعاتی ساختگی در ارتباط با کشور فرانسه تولید کنیم. کار آسانی است، کافی است کد زبان ISO متناظر را به متد Factory.create() ارسال کنیم. برای مثال در مورد فرانسه باید کد زیر را بنویسیم:
fake = Factory.create('fr_FR')
که وقتی اجرا شود، نتیجه زیر را تولید میکند:
نتیجهگیری
Faker ابزار قدرتمندی برای کسانی است که نیاز به دسترسی به اطلاعات واقعگرایانه دارند و نمیخواهند هیچ یک از قوانین این حوزه را نقض نمایند. این ابزار با پشتیبانی منسجم و کامل از همه زبانها، همزمان کاملاً مفید و قدرتمند است.
لازم به ذکر است که گرچه شیوه استفاده از Faker در زبانهای روبی، پرل و پایتون بررسی شد؛ اما کتابخانههای آن در زبانهای PHP و جاوا اسکریپت نیز در دسترس هستند. اما در نسخه پورت شده برای جاوا اسکریپت همه کدها قابل استفاده نیستند.
اگر این نوشته مورد توجه شما قرار گرفته است، پیشنهاد میکنیم موارد زیر را نیز ملاحظه نمایید:
- علم داده چیست؟
- آموزش ساختمان داده ها
- مجموعه آموزش های پروژه محور برنامه نویسی
- دادهکاوی چیست؟
- رویههای پایتون برای کد نویسی کارآمد: عملکرد، حافظه و قابلیت استفاده
- مجموعه آموزشهای برنامهنویسی
==