paint-brush
Refactoring 021 - مړ کوډ لرې کړئلخوا@mcsee
نوی تاریخ

Refactoring 021 - مړ کوډ لرې کړئ

لخوا Maximiliano Contieri4m2025/01/01
Read on Terminal Reader

ډېر اوږد؛ لوستل

غیر استعمال شوي افعال، ثابت، او "یوازې په قضیه" کوډ له منځه یوسي.
featured image - Refactoring 021 - مړ کوډ لرې کړئ
Maximiliano Contieri HackerNoon profile picture
0-item

کثافات پاک کړئ

TL؛ DR: نه کارول شوي افعال، ثابت، او "یوازې په قضیه" کوډ له منځه یوسي.

ستونزې په ګوته شوې

اړوند کوډ بوی

ګامونه

  1. ډاډ ترلاسه کړئ چې ستاسو کوډ ښه فعال پوښښ لري.
  2. د خپل کوډ بیاکتنې یا د جامد تحلیلي وسیلو په کارولو سره غیر کارول شوي افعال او ثابتونه وپیژنئ.
  3. اضافه شوي قیاس کوډ تحلیل کړئ، یوازې په قضیه کې.
  4. هر هغه څه لرې کړئ چې غیر ضروري یا نه کارول کیږي.
  5. په خپل کوډ کې د ریګریشن جامع ازموینه ترسره کړئ.

د نمونې کوډ

مخکې

 from flask import Flask, jsonify, make_response app = Flask(__name__) HTTP_100_CONTINUE = 100 HTTP_202_ACCEPTED = 202 # Not used HTTP_204_NO_CONTENT = 204 # Not Used HTTP_302_FOUND = 302 # Not Used HTTP_400_BAD_REQUEST = 400 # Not Used HTTP_401_UNAUTHORIZED = 401 # Not Used HTTP_403_FORBIDDEN = 403 HTTP_404_NOT_FOUND = 404 HTTP_410_GONE = 410 HTTP_500_INTERNAL_SERVER_ERROR = 500 HTTP_501_NOT_IMPLEMENTED = 501 probe_telemetry = { "temperature": {"solar_panels": 150, "instrument_1": 50}, "position": {"x": 1000000, "y": 2000000, "z": 3000000, "velocity": {"vx": 100, "vy": 200, "vz": 300}}, "status": {"power_level": 95, "communication_status": "OK"} } @app.route('/api/v1/probe/telemetry', methods=['GET']) def get_telemetry(): return jsonify(probe_telemetry), HTTP_200_OK # The following function is not invoked # and not implemented # It is a dead placeholder @app.route('/api/v1/probe/send_command', methods=['POST']) def send_command(): return jsonify( {"message": "Command endpoint not implemented yet."} ), HTTP_501_NOT_IMPLEMENTED @app.route('/api/v1/probe/data', methods=['GET']) def get_data(): return jsonify({"message": "Data not found"}), HTTP_404_NOT_FOUND @app.route('/api/v1/probe/redirect', methods=['GET']) def redirect_endpoint(): response = make_response( jsonify({"message": "Redirecting..."}), HTTP_301_MOVED_PERMANENTLY ) response.headers['Location'] = '/api/v1/probe/telemetry' return response @app.route('/api/v1/probe/not_modified', methods=['GET']) def not_modified_endpoint(): response = make_response(jsonify({"message": "Not Modified"}), HTTP_304_NOT_MODIFIED) response.headers['ETag'] = 'some_etag' return response @app.route('/api/v1/probe/gone', methods=['GET']) def gone_endpoint(): return jsonify( {"message": "Resource permanently gone"} ), HTTP_410_GONE

وروسته

 # 1. Ensure your code has good functional coverage. from flask import Flask, jsonify, make_response from http import HTTPStatus app = Flask(__name__) # 2. Identify unused functions and constants # by reviewing your code or using static analysis tools. HTTP_200_OK = HTTPStatus.OK HTTP_301_MOVED_PERMANENTLY = HTTPStatus.MOVED_PERMANENTLY HTTP_304_NOT_MODIFIED = HTTPStatus.NOT_MODIFIED HTTP_404_NOT_FOUND = HTTPStatus.NOT_FOUND HTTP_410_GONE = HTTPStatus.GONE HTTP_501_NOT_IMPLEMENTED = HTTPStatus.NOT_IMPLEMENTED probe_telemetry = { "temperature": {"solar_panels": 150, "instrument_1": 50}, "position": {"x": 1000000, "y": 2000000, "z": 3000000, "velocity": {"vx": 100, "vy": 200, "vz": 300}}, "status": {"power_level": 95, "communication_status": "OK"} } @app.route('/api/v1/probe/telemetry', methods=['GET']) def get_telemetry(): return jsonify(probe_telemetry), HTTP_200_OK # 3. Analyze the added speculative code, just in case. @app.route('/api/v1/probe/send_command', methods=['POST']) def send_command(): return jsonify({"message": "Command endpoint not implemented yet."}), HTTP_501_NOT_IMPLEMENTED @app.route('/api/v1/probe/data', methods=['GET']) def get_data(): return jsonify({"message": "Data not found"}), HTTP_404_NOT_FOUND # 4. Remove anything unnecessary or unused. # 5. Perform comprehensive regression testing on your code.

ډول

  • [x] نیمه اتوماتیک

تاسو کولی شئ د ماشوم مرحلې ترسره کړئ او په تکرارونو کې غیر ضروري کوډ لرې کړئ.

خوندیتوب

دا ریفیکټرینګ خوندي دی که تاسو د بدلونونو وروسته خپل غوښتنلیک په بشپړ ډول ازموینه وکړئ. د جامد تحلیل وسیلې کولی شي ډاډ ترلاسه کولو کې مرسته وکړي چې تاسو لاهم په کارولو کې هیڅ شی نه لرې کوئ.

ولې کوډ غوره دی؟

تاسو د غیر استعمال شوي عناصرو په لرې کولو سره روښانه کول او پیچلتیا کموئ.

ستاسو کوډ د پوهیدو او ساتلو لپاره اسانه کیږي.

د قیاس کوډ کمول ستاسو تمرکز په اوسني، حقیقي اړتیاو هم ساتي.

دا څنګه Bijection ښه کوي؟

مړ کوډ او قیاس عناصر ستاسو د سافټویر او ریښتیني نړۍ ماډل تر مینځ Bijection ماتوي.

د دې عناصرو لرې کول ډاډ ترلاسه کوي چې ستاسو کوډ په سمه توګه ستاسو MAPPER استازیتوب کوي، دا پاکوي او واقعیت ته نږدې کوي.

محدودیتونه

د مړ شوي کوډ لرې کول باور ته اړتیا لري چې دا واقعیا نه کارول کیږي.

دا پروسه په جامد تحلیل یا بشپړ کوډبیس پوهه تکیه کوي، کوم چې د قوي وسیلو پرته د خطا احتمال کیدی شي.

د AI سره ریفیکٹر

د مناسبو لارښوونو پرته

د ځانګړو لارښوونو سره

ChatGPT

ChatGPT

کلاډ

کلاډ

مغشوشیت

مغشوشیت

copilot

copilot

Gemini

Gemini

ټګونه

  • بلوټرونه

اړونده بیاکتنه

کریډیټ

د Pixabay څخه د پیټر ایچ لخوا انځور


دا مقاله د بیاکتنې لړۍ برخه ده.