Skip to main content

পাইথন এবং জ্যাঙ্গো কোডিং স্টাইল-১

প্রোগ্রামারদের মধ্যে একটা জোকস আছে যে কোনো একটা প্রোগ্রাম লিখতে যে সময় লাগে, প্রোগ্রামটা ডিবাগ করতে তার থেকে বেশি সময় লাগে।


উপরের ছবিটা সুন্দর না ? আসল কথা হলো আমাদের কোড লেখার থেকে কোড পড়তে হয় বেশি।আন্ডারস্ট্যান্ডএবল কোড আমাদের ব্রেইনের ব্যান্ডউইথ কে ফ্রি করে দেয়।  ক্লিন,রিডএবল কোড লেখা কিন্তু একটা যোগ্যতা। এজন্য আমাদের চেষ্টা করতে হবে যতটা সম্ভব রিবাবলে কোড লেখার যে কোড নিজে কথা বলে। যেমন: আমি যদি কোনো ভ্যারিয়েবল  নাম c_t_num এর পরিবর্তে calculate_total_number নেই তাহলে বেশি রিডেবল হবে।

পাইথন এ পেপ ৮ নামে অফিসিয়াল কোডিং স্টাইল এর গাইড আছে।  পেপ ৮ এর কিছু জিনিশ আমি লিখছি -

পাইথন কোডিং কনভেনশন -

১.  ৪ টা স্পেস / ১ ট্যাব ব্যবহার করতে হবে ইনডেন্ট  হিসেবে
           
২. প্রত্যেক  ক্লাসের মধ্যে ২ টা ব্ল্যান্ক লাইন দিতে হবে

৩. ক্লাসের মধ্যে মেথড ডেফিনেশন করতে ১ তা ব্ল্যান্ক লাইন দিতে হবে।

pycharm পাইথন এর একটা জনপ্রিয় IDE . এতে ডিফল্ট স্টাইল বলা আছে। আপনি ফলো না করলে ইয়েলো কালার এর একটা দাগ আসবে।  তাছাড়া যারা অন্য টেস্ট এডিটর ব্যবহার করেন তারা flake৮ প্যাকেজ ইনস্টল করে নিতে পারেন।

৭৯-Character লিমিট -

pycharm এ দেখবেন লেফট সাইড এর দিকে ভার্টিক্যাল লাইন আছে।  এর মানে হলো কোনো লাইন যদি ৭৯ character এর বেশি হয় তাহলে এই লাইন ক্রস করবে এবং কোডিং স্টাইল গাইড অনুযায়ী পত্তেক লাইন ৭৯ char এর মধ্যে হবে। কিন্তু কোড ৭৯ char  এর মধ্যে ফিট করার জন্য ভ্যারিয়েবল নেম রিডেবল না নেওয়ার কোনো যুক্তিই নেই।


import স্টাইল -

পাইথন ওর জ্যাঙ্গো , ইম্পোর্ট এর ৩ টি অর্ডার  আছে

১. প্রথমে পাইথন এর স্ট্যান্ডার্ড লাইব্রেরি গুলা থাকবে
২. দ্বিতীয়ত রিলেটেড থার্ড পার্টি ( উদাহরণ দিলে বুঝে যাবেন )
৩. লোকাল এপ্লিকেশন অথবা লাইব্রেরি স্পেসিফিক ইম্পোর্ট

এখানে জ্যাঙ্গো এর উদাহরণ দিলে ভালো বোঝা যাবে -

# Std lib import

import requests
from math import sqrt

# Core Django Import

from django.db import models
from django.utils.translation import ugett

# Import from your local app

from .models import Profile
from .froms import LoginForm


আমি বোঝানোর জন্য কমেন্ট(# দিয়ে শুরু লাইন) ব্যবহার করেছি।    

এভোইড ইম্পোর্ট ষ্টার (*)

from math import *
* মানে ওই মডিউলে সবটাই ধরে ইম্পোর্ট করা। এইটা একটব্যাড প্র্যাক্টিস। আমরা শুধু সেইটায় ইম্পোর্ট করবো যেটা আমার দরকার।

from math import math, pow 

পরের পোস্ট এ জ্যাঙ্গো এর কিছু স্টাইল নিয়ে লিখবো। আজ টা টা :)





Comments

Popular posts from this blog

How to set auto save in Sublime text editor

1. Press Ctrl+Shift+P 2 Package install/install package 3.Search autosave 4. Click to install 5. Go to Preference -> Package setting -> Auto Save -> Settings User 6. Paste the code   // Auto save default setting { "auto_save_on_modified": true, "auto_save_delay_in_seconds": 1, "auto_save_all_file": true, "auto_save_current_file": "", "auto_save_backup": false, "auto_save_backup_suffix": "autosave" } 7. Save the file, close the file and finally done :) .

পাইথনে os মডিউল

কি কাজে লাগে :        os মডিউল ব্যবহার করে আমরা ডিরেক্টরি পরিবর্তন করতে পারি , ডিরেক্টরি তে রাখা ফাইলের নাম পরিবর্তন করতে পারি , কোন প্লাটফর্ম ব্যবহার করছি তা জানতে পারি।  শুধু মাত্র ২-৩ লাইন কোড লিখে হাজার হাজার ফোল্ডার বানাতে পারি।  এমনকি আমার প্রিয় গানটা ও প্লে করতে পারি। তাহলে দেখে নেই কিভাবে করবো। ওসি মডিউলে নিয়ে কাজ করতে গেলে আগে মডিউল  ইম্পোর্ট করে নিতে হবে এভাবে , import os আমি এখন কোন ডিরেক্টরি তে আছি আগে এইটা দেখি। os.getcwd() ডিরেক্টরি পরিবর্তন করতে হলে , os.chdir('path_name')  path_name = কোন পথ এ যেতে চান os.name দিয়ে কোন প্লাটফর্মে আছেন তার তথ্য পাবেন। ভ্যালু গুলা এভাবে দেখতে পাবেন   ‘posix’, ‘nt’, ‘os2’, ‘ce’, ‘java’, ‘riscos’. os.uname() দিলে সিস্টেম ডিপেন্ডেন্ট সকল ইনফরমেশন দেখাবে। ‘posix’, ‘nt’, ‘os2’, ‘ce’, ‘java’, ‘riscos’ এগুলা কি তা একটু গুগল করে গুগলের সাথে বন্ধুত্ব বাড়াতে পারেন 😋. os.mkdir("folder_name") এই কমান্ড দিয়ে একটি মাত্র ফোল্ডার বানাতে পারবেন।  ফোল্ডারটি তৈরি হবে যে ডিরেক্টরি তে আপনি...

কিভাবে Django তে চেঞ্জ পাসওয়ার্ড ভিউ Create করতে হয় ?

ইউসার প্রোফাইল থাকলে পাসওয়ার্ড চেঞ্জ এর অপশনের দরকার হয়।  Django তে বিল্ট ইন PasswordChangeForm ব্যবহার  করে খুব সহজে এই অপশন আনা যায়।  এজন্য  ফাঙ্কশন বেসড ভিউ ব্যবহার করা ভালো কারণ PasswordChangeForm , ModelForm কে ইনহেরিট করে না এবং ইউসার আর্গুমেন্ট কন্সট্রাক্টর হিসেবে নেয় . আমরা views.py এভাবে লিখতে পারি from django.contrib.auth import update_session_auth_hash from django.contrib.auth.decorators import login_required from django.contrib.auth.forms import PasswordChangeForm from django.shortcuts import render, redirect @login_required def change_password(request):     if request.method == 'POST':         form = PasswordChangeForm(request.user, request.POST)         if form.is_valid():             user = form.save()             update_session_auth_hash(request, user)                     ...