برنامه نویسی

0.4 – هفته – 3 – نتایج

Summarize this content to 400 words in Persian Lang
این آخرین پست من از مجموعه مشارکت من است و در این وبلاگ در مورد اینکه چگونه توانستم مشارکت خود را کامل کنم صحبت خواهم کرد (به نوعی).

زمینه

بنابراین، به‌عنوان بخشی از دوره‌ام، قرار بود سهم مؤثری در هر مخزن‌خانه‌ای که دوست داریم داشته باشم. من روی این موضوع کار کردم و این روابط عمومی من است. توجه کنید که چگونه هر دوی اینها در مخازن مختلف هستند. بله، من هم تعجب کردم، این موضوع را قبول کردم زیرا به نوعی درک می کردم که در مخزن اصلی چه اتفاقی می افتد، اما مخزن دیگر باعث استرس من شد زیرا درک آن برای من چقدر سخت بود. Blog1 و Blog2 من را بررسی کنید تا متوجه شوید در کجا هستیم.

روابط عمومی

من اولین روابط عمومی خود را در آخرین وبلاگم مطرح کردم، پس از چند روز دو نقد دریافت کردم. یکی این بود که چیزی را در عمیق‌ترین قسمت تابع پرتاب نکنیم، زیرا توسط بسیاری از جریان‌های دیگر استفاده می‌شود و ما نمی‌خواهیم آنها را مختل کنیم زیرا این موضوع در محدوده موضوع نیست. و دیگری این بود که از ماژول جهشی که در مخزن داشتند برای پرتاب استفاده کنند تا پرتاب ها سازگار باشند. کار با این ماژول بسیار منظم بود و باعث شد کد من بهتر به نظر برسد. باعث شد متوجه شوم که یکی از جنبه‌های مشارکت منبع باز این است که مطمئن شویم در اولین قدم زدن در اطراف مخزن، ما به دنبال انجام کارهای خاصی هستیم که ممکن است مجبور به پیاده‌سازی آنها باشیم. به عنوان مثال، من می‌دانستم که باید پرتاب کنم، که مطمئناً بود، زیرا داستان درباره آن بود، در عوض، زمان زیادی را صرف فهمیدن اینکه کد چگونه کار می‌کند و نه نحو پرتاب کردن، صرف کردم. من آن تغییرات را اصلاح کردم و تغییرات جدیدم را برای بازبینی آن‌ها فشار دادم.

تغییرات این بار مورد تایید قرار گرفت و پیشنهادی برای اضافه کردن تست ها وجود داشت، من تا پایان مهلت این پروژه مدتی باقی مانده بودم، پس فکر کردم چرا که نه؟ این به آن سادگی که من فکر می کردم نیست. قبل از اینکه شروع به اضافه کردن تست‌هایم کنم، می‌خواستم تست‌های دیگری را اجرا کنم. با این حال، آزمایش‌ها به دلایلی اجرا نمی‌شدند و علاوه بر آن هیچ گزارشی برای اشکال‌زدایی برای من وجود نداشت، تا اینکه متوجه شدم که فایل بسته.json محلی خودش را دارد که جدید برای جدید بود. به هر حال وابستگی ها را دانلود کردم و دوباره تست ها را اجرا کردم. و حدس بزنید چی؟ دوباره شکست خورد خوشبختانه این بار، برخی از سیاهههای مربوط وجود دارد. من به لاگ ها نگاه کردم و متوجه شدم که تست ها سعی در زدن پورت دارند، آیا قرار بود قبل از آزمایش سرور را اجرا کنم؟ من سوالات زیادی داشتم که باعث شد دنبال یک فایل readme یا چیزی شبیه به آن بگردم. در حالی که به دنبال readme می گشتم، یک dockerfile پیدا کردم و لحظه ای آها داشتم. این بود!!. من باید قبل از تست ها یک فایل داکر را اجرا می کردم و بعد از آن همه آزمایش ها شروع می شد. اضافه کردن آزمون بخش آسانی بود زیرا من قبلاً کمی با کد آشنا بودم. من تست ها را با یک اسکرین شات از گذراندن آن انجام داده ام.

تغییرات من در جزئیات

بنابراین این مسیر وجود داشت که زمانی که پایگاه داده برای یک کاربر وجود نداشت، 500 را برمی گرداند. داستان از من می خواست که اگر کاربر وجود نداشته باشد، 404 و اگر کاربر اخیراً اکانت خود را حذف کرده است، 410 را انجام دهم. دومی باعث شد سرم را بخارم. من به گزارش های موجود در اسکرین شات مسئله نگاه کردم و فایل هایی را که می توان این 500 را برگرداند ردیابی کردم. من این 404 را نیز تغییر دادم (که در نهایت آن را برگرداندم زیرا توسط بسیاری از جریان‌های دیگر استفاده می‌شد و ما نمی‌خواهیم آن را تغییر دهیم؟). و کمی به عقب رفتم و نقطه ورودی مسیر را پیدا کردم. من فقط یک چک کوچک در آنجا اضافه کردم تا حساب را با استفاده از WebID ارسال شده در پارامترها بازیابی کنم. من از ctx استفاده کردم تا تابعی را اجرا کنم که اکانت را به من می دهد، اگر اکانت آنجا نبود 404 و اگر خاصیت deletedAt داشت 410 را برگرداندم. متوجه شدم که تابع حذف این ردیف را به حساب های حذف شده اضافه کرده است. بنابراین من فقط از این ردیف استفاده کردم.

وقتی می‌خواستم به این مسیر بروم، پستچی کار نمی‌کرد و یک خطای بسیار مرموز به من می‌داد. پس از کمی تلاش، مجبور شدم با توسعه دهندگان دیگر مشورت کنم و آنها از من نظر خواستند که یک بررسی که مشکل من را برطرف کرد. من می دانستم که این بررسی مشکل است، اما مطمئن نبودم که آیا می توان آن را برای اشکال زدایی حذف کرد. بلوک کد حاصل ممکن است کوتاه باشد، اما به من اعتماد کنید این یکی از سخت‌ترین پروژه‌ها برای من بود که بتوانم روی آن کار کنم، همتراز با مخازن بزرگی که در شرکت خود روی آن کار کردم.

سفر

راستش را بخواهید، این سخت‌ترین مخزن بود که من مجبور بودم خودم را روی آن قرار دهم. هیچ تایپیکی وجود نداشت و یک ctx به همه جا منتقل می شد. زمان زیادی از من صرف شد تا فقط با استفاده از ctx سرم را پیرامون این ایده از این معماری بپیچم. مانع دیگر این واقعیت بود که کد به دو مخزن مختلف تقسیم شده بود، بنابراین قبل از اجرای سرور مجبور شدم کد را پیوند دهم. بوت کردن سرور به دلیل مستندات واضح بسیار ساده بود، اما کدنویسی کمی چالش برانگیز بود. هر بار که مسیر خود را با استفاده از پستچی آزمایش می‌کردم، باید به گزارش‌های موجود در اولین مخزن نگاه می‌کردم، اما برای یافتن اینکه گزارش‌ها از کجا آمده‌اند و بیشتر اشکال‌زدایی می‌کردم، باید به مخزن دیگری منتقل می‌شدم. مشکل بزرگی نیست اما مطمئناً ناخوشایند است. من به یک سرور ماتریسی اضافه شدم و همه آنها بسیار خوش آمد و مفید بودند و به چند سوالی که پرسیدم پاسخ دادند. من از کار بر روی این مخزن لذت بردم و یک یا دو چیز در مورد معماری زمینه یاد گرفتم. ممنون که خواندید.

این آخرین پست من از مجموعه مشارکت من است و در این وبلاگ در مورد اینکه چگونه توانستم مشارکت خود را کامل کنم صحبت خواهم کرد (به نوعی).

زمینه

بنابراین، به‌عنوان بخشی از دوره‌ام، قرار بود سهم مؤثری در هر مخزن‌خانه‌ای که دوست داریم داشته باشم. من روی این موضوع کار کردم و این روابط عمومی من است. توجه کنید که چگونه هر دوی اینها در مخازن مختلف هستند. بله، من هم تعجب کردم، این موضوع را قبول کردم زیرا به نوعی درک می کردم که در مخزن اصلی چه اتفاقی می افتد، اما مخزن دیگر باعث استرس من شد زیرا درک آن برای من چقدر سخت بود. Blog1 و Blog2 من را بررسی کنید تا متوجه شوید در کجا هستیم.

روابط عمومی

من اولین روابط عمومی خود را در آخرین وبلاگم مطرح کردم، پس از چند روز دو نقد دریافت کردم. یکی این بود که چیزی را در عمیق‌ترین قسمت تابع پرتاب نکنیم، زیرا توسط بسیاری از جریان‌های دیگر استفاده می‌شود و ما نمی‌خواهیم آنها را مختل کنیم زیرا این موضوع در محدوده موضوع نیست. و دیگری این بود که از ماژول جهشی که در مخزن داشتند برای پرتاب استفاده کنند تا پرتاب ها سازگار باشند. کار با این ماژول بسیار منظم بود و باعث شد کد من بهتر به نظر برسد. باعث شد متوجه شوم که یکی از جنبه‌های مشارکت منبع باز این است که مطمئن شویم در اولین قدم زدن در اطراف مخزن، ما به دنبال انجام کارهای خاصی هستیم که ممکن است مجبور به پیاده‌سازی آنها باشیم. به عنوان مثال، من می‌دانستم که باید پرتاب کنم، که مطمئناً بود، زیرا داستان درباره آن بود، در عوض، زمان زیادی را صرف فهمیدن اینکه کد چگونه کار می‌کند و نه نحو پرتاب کردن، صرف کردم. من آن تغییرات را اصلاح کردم و تغییرات جدیدم را برای بازبینی آن‌ها فشار دادم.

تغییرات این بار مورد تایید قرار گرفت و پیشنهادی برای اضافه کردن تست ها وجود داشت، من تا پایان مهلت این پروژه مدتی باقی مانده بودم، پس فکر کردم چرا که نه؟ این به آن سادگی که من فکر می کردم نیست. قبل از اینکه شروع به اضافه کردن تست‌هایم کنم، می‌خواستم تست‌های دیگری را اجرا کنم. با این حال، آزمایش‌ها به دلایلی اجرا نمی‌شدند و علاوه بر آن هیچ گزارشی برای اشکال‌زدایی برای من وجود نداشت، تا اینکه متوجه شدم که فایل بسته.json محلی خودش را دارد که جدید برای جدید بود. به هر حال وابستگی ها را دانلود کردم و دوباره تست ها را اجرا کردم. و حدس بزنید چی؟ دوباره شکست خورد خوشبختانه این بار، برخی از سیاهههای مربوط وجود دارد. من به لاگ ها نگاه کردم و متوجه شدم که تست ها سعی در زدن پورت دارند، آیا قرار بود قبل از آزمایش سرور را اجرا کنم؟ من سوالات زیادی داشتم که باعث شد دنبال یک فایل readme یا چیزی شبیه به آن بگردم. در حالی که به دنبال readme می گشتم، یک dockerfile پیدا کردم و لحظه ای آها داشتم. این بود!!. من باید قبل از تست ها یک فایل داکر را اجرا می کردم و بعد از آن همه آزمایش ها شروع می شد. اضافه کردن آزمون بخش آسانی بود زیرا من قبلاً کمی با کد آشنا بودم. من تست ها را با یک اسکرین شات از گذراندن آن انجام داده ام.

تغییرات من در جزئیات

بنابراین این مسیر وجود داشت که زمانی که پایگاه داده برای یک کاربر وجود نداشت، 500 را برمی گرداند. داستان از من می خواست که اگر کاربر وجود نداشته باشد، 404 و اگر کاربر اخیراً اکانت خود را حذف کرده است، 410 را انجام دهم. دومی باعث شد سرم را بخارم. من به گزارش های موجود در اسکرین شات مسئله نگاه کردم و فایل هایی را که می توان این 500 را برگرداند ردیابی کردم. من این 404 را نیز تغییر دادم (که در نهایت آن را برگرداندم زیرا توسط بسیاری از جریان‌های دیگر استفاده می‌شد و ما نمی‌خواهیم آن را تغییر دهیم؟). و کمی به عقب رفتم و نقطه ورودی مسیر را پیدا کردم. من فقط یک چک کوچک در آنجا اضافه کردم تا حساب را با استفاده از WebID ارسال شده در پارامترها بازیابی کنم. من از ctx استفاده کردم تا تابعی را اجرا کنم که اکانت را به من می دهد، اگر اکانت آنجا نبود 404 و اگر خاصیت deletedAt داشت 410 را برگرداندم. متوجه شدم که تابع حذف این ردیف را به حساب های حذف شده اضافه کرده است. بنابراین من فقط از این ردیف استفاده کردم.

وقتی می‌خواستم به این مسیر بروم، پستچی کار نمی‌کرد و یک خطای بسیار مرموز به من می‌داد. پس از کمی تلاش، مجبور شدم با توسعه دهندگان دیگر مشورت کنم و آنها از من نظر خواستند که یک بررسی که مشکل من را برطرف کرد. من می دانستم که این بررسی مشکل است، اما مطمئن نبودم که آیا می توان آن را برای اشکال زدایی حذف کرد. بلوک کد حاصل ممکن است کوتاه باشد، اما به من اعتماد کنید این یکی از سخت‌ترین پروژه‌ها برای من بود که بتوانم روی آن کار کنم، همتراز با مخازن بزرگی که در شرکت خود روی آن کار کردم.

توضیحات تصویر

سفر

توضیحات تصویر

راستش را بخواهید، این سخت‌ترین مخزن بود که من مجبور بودم خودم را روی آن قرار دهم. هیچ تایپیکی وجود نداشت و یک ctx به همه جا منتقل می شد. زمان زیادی از من صرف شد تا فقط با استفاده از ctx سرم را پیرامون این ایده از این معماری بپیچم. مانع دیگر این واقعیت بود که کد به دو مخزن مختلف تقسیم شده بود، بنابراین قبل از اجرای سرور مجبور شدم کد را پیوند دهم. بوت کردن سرور به دلیل مستندات واضح بسیار ساده بود، اما کدنویسی کمی چالش برانگیز بود. هر بار که مسیر خود را با استفاده از پستچی آزمایش می‌کردم، باید به گزارش‌های موجود در اولین مخزن نگاه می‌کردم، اما برای یافتن اینکه گزارش‌ها از کجا آمده‌اند و بیشتر اشکال‌زدایی می‌کردم، باید به مخزن دیگری منتقل می‌شدم. مشکل بزرگی نیست اما مطمئناً ناخوشایند است. من به یک سرور ماتریسی اضافه شدم و همه آنها بسیار خوش آمد و مفید بودند و به چند سوالی که پرسیدم پاسخ دادند. من از کار بر روی این مخزن لذت بردم و یک یا دو چیز در مورد معماری زمینه یاد گرفتم. ممنون که خواندید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا