نرم افزاری که توسط چند نفر تولید می شود به نر اصول برنامه نویسی پایتون م افزاری که توسط یک نفر تولید می شود ارجحیت دارد. با استفاده از قراردادها و ابزارهای مورد استفاده در بسیاری از پروژه های نرم افزاری علمی دیگر، به خوبی در راه آسان کردن مشارکت دیگران هستید. آشنایی در هر دو جهت کار میکند: درک و مشارکت در پروژه شما برای دیگران آسانتر خواهد بود، و استفاده از سایر پروژههای نرمافزار علمی منبع باز محبوب و تغییر آنها برای اهدافتان برای شما آسانتر خواهد بود.
صحبت از طریق یک طرح و مفروضات موجود در آن به اصول برنامه نویسی پایتون روشن شدن تفکر شما کمک می کند.
همکاری نیاز به اعتماد دارد. "اشتباه" بودن اشکالی ندارد. بخشی از روند بهبود اوضاع است.
درک بیش از یک نفر از هر قسمت از کد، از خطرات سیستماتیک برای پروژه جلوگیری می کند و شما را از گره خوردن به آن کد باز می دارد.
اگر بتوانید مشارکتکنندگانی را با پیشینههای علمی متنوع گرد اصول برنامه نویسی پایتون هم بیاورید، شناسایی عملکردی که باید برای استفاده مجدد در زمینههای مختلف تعمیم داده شود، آسانتر میشود.
از Refactor نترسید¶
هیچ کدی برای بار اول (یا دوم) درست نیست.
هنگامی که مشکل را درک کردید و مبادله های طراحی را به طور کامل تر انجام دادید، کد را مجدداً تنظیم کنید، به حفظ و نگهداری کد کمک می کند. کنترل نسخه، آزمایشها و پردهبندی شبکه ایمنی ش اصول برنامه نویسی پایتون ما هستند که به شما امکان میدهند با اطمینان تغییرات را ایجاد کنید.
ترجیح دادن "عریض" به "عمیق"¶
باید امکان استفاده مجدد از قطعات نرم افزار به گونه ای وجود داشته باشد که توسط نویسنده اصلی پیش بینی نشده است. یعنی منشعب شدن از مورد استفاده اولیه باید عملکردهای برنامه ریزی نشده را بدون افزایش عظیم در پیچیدگی فعال کند.
هنگام ساختن چیزهای جدید، راه خود را به پایین ترین سطح برسانید، اصول برنامه نویسی پایتون آن سطح را درک کنید، و سپس دوباره بسازید. سعی کنید تصور کنید با قابلیتی که در حال پیاده سازی برای سایر گروه های تحقیقاتی، برای کاربردهای علمی مرتبط و سال آینده هستید، چه کارهای دیگری می خواهید انجام دهید.
برای درک اینکه چگونه کارها باید در پایین کار کنند، وقت بگذارید اصول برنامه نویسی پایتون . بهتر است به آرامی یک محلول توسعه پذیر قوی را به جای استقرار سریع یک محلول باریک شکننده استقرار دهید.
I/O را جدا نگه دارید¶
یکی از بزرگترین موانع برای استفاده مجدد از کد علمی زمانی است اصول برنامه نویسی پایتون که کد ورودی/خروجی - با فرض مکانها، نامها، قالبها یا طرحبندیهای فایل خاص - با منطق علمی در هم آمیخته میشود.
توابع مربوط به I/O فقط باید I/O را انجام دهند. به عنوان آموزش برنامه نویسی کودکان و نوجوانان مثال، آنها باید یک مسیر فایل را انتخاب کنند و یک آرایه numpy یا فرهنگ لغت آرایه ها و ابرداده ها را برگردانند. منطق علمی ارزشمند باید در توابعی رمزگذاری شود که انواع داده های استاندارد را دریافت کرده و اصول برنامه نویسی پایتون انواع داده های استاندارد را برمی گرداند. این باعث میشود آزمایش، نگهداری آنها هنگام تغییر فرمت دادهها یا استفاده مجدد برای برنامههای پیشبینینشده آسانتر شود.
تایپ اردک ایده خوبی است¶
تایپ اردکی با اشیا بر اساس آنچه می توانند انجام دهند رفتار می کند، نه بر اساس نوع آنها. «اگر مثل اردک راه میرود و مثل اردک میلرزد، پس باید اردک باشد.»
پایتون به طور کلی و پایتون علمی به طور خاص از رابط های اهر اصول برنامه نویسی پایتون می برای پشتیبانی از قابلیت همکاری و استفاده مجدد استفاده می کند. برای مثال، میتوان یک Pandas DataFrame را به تابع numpy.sum () ارسال کرد، حتی اگر pandas مدتها بعد از numpy.sum () ایجاد شده باشد. این به این دلیل است که () numpy.sum از این فرض که انواع داده های خاص ارسال می شود اجتناب می کند. هر شیئی را می پذیرد که متدهای (رابط) مناسبی را ارائه دهد. در صورت امکان، از بررسی های نمونه در کد خود اجتناب کنید و سعی کنید توابع خود را در وسیع ترین طیف ممکن از انواع ورودی کار کنید.
"کلاس های نوشتن را متوقف کنید"¶
لازم نیست همه چیز شی گرا باشد. طراحی شی گرا اغلب ا اصول برنامه نویسی پایتون رزشی در محاسبات علمی ایجاد نمی کند.
بهتر است 100 تابع روی یک ساختار داده کار کنند تا 10 تابع روی 10 ساختار داده.
- از انتشارات ACM's SIGPLAN، (سپتامبر، 1982)، مقاله "Epigrams in Programming" توسط آلن جی پرلیس از دانشگاه ییل.
اغلب وسوسه انگیز است که اشیاء خاصی را برای یک مو اصول برنامه نویسی پایتون رد استفاده یا گردش کار اختراع کنید - یک شی Image یا یک شی DiffractionAnalysis. این رویکرد بارها و بارها ثابت شده است که گسترش و حفظ آن دشوار است. بهتر است ساختارهای داده استاندارد و ساده مانند دیکشنری های پایتون و آرایه های numpy را ترجیح دهید و از توابع ساده برای کار بر روی آنها استفاده کنید.
یک سخنرانی پرطرفدار، «کلاسهای نوشتن را متوقف کنید»، که میتوانید آن را در YouTube تماشا کنید، نشان میدهد که چگونه برخی از موقعیتهایی که به نظر میرسد به برنامهنویسی شیگرا کمک میکنند، با استفاده از ساختارها و توابع دادهای ساده و داخلی بسیار سادهتر مدیریت میشوند.
به عنوان مثالی دیگر، کتابخانه پرکاربرد تصویر scikit در ابتدا با استفاده از یک کلاس Image آزمایش کرد، اما در نهایت تصمیم گرفت که بهتر است از آرایههای numpy قدیمی ساده استفاده کند. همه کتابخانههای علمی پایتون آرایههای numpy را درک میکنند، اما کلاسهای سفارشی را درک نمیکنند، بنابراین بهتر است ابردادههای خاص برنامه را در کنار یک آرایه استاندارد ارسال کنیم تا اینکه سعی کنیم
همه آن اطلاعات را در ی Principles of Python programming ک شی جدید و سفارشی محصور کنیم.
سهل انگاری همیشه راحت نیست¶
کد بیش از حد مجاز می تواند منجر به اشکالات بسیار گیج کننده شود. اگر بله