Bersihkan sampah
TL;DR: Hapuskan fungsi yang tidak digunakan, pemalar dan kod "hanya dalam kes".
Kod Mati
Kod hanya dalam kes
Kebolehselenggaraan yang dikurangkan
Bot Sauh
Beban Kognitif
Pastikan kod anda mempunyai liputan berfungsi yang baik.
Kenal pasti fungsi dan pemalar yang tidak digunakan dengan menyemak kod anda atau menggunakan alat analisis statik.
Analisis kod spekulatif yang ditambahkan, untuk berjaga-jaga.
Alih keluar apa-apa yang tidak perlu atau tidak digunakan.
Lakukan ujian regresi komprehensif pada kod anda.
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] Separa Automatik
Pemfaktoran semula ini selamat jika anda menguji aplikasi anda dengan teliti selepas perubahan. Alat analisis statik boleh membantu memastikan anda tidak mengalih keluar apa-apa yang masih digunakan.
Anda meningkatkan kejelasan dan mengurangkan kerumitan dengan mengalih keluar elemen yang tidak digunakan.
Kod anda menjadi lebih mudah untuk difahami dan diselenggara.
Mengurangkan kod spekulatif juga mengekalkan tumpuan anda pada keperluan sebenar semasa.
Kod mati dan elemen spekulatif memecahkan Bijection antara perisian anda dan model dunia sebenar.
Mengalih keluar elemen ini memastikan kod anda mewakili
anda dengan tepat
MAPPER, menjadikannya lebih bersih dan lebih dekat dengan realiti.
Mengalih keluar kod mati memerlukan keyakinan bahawa ia benar-benar tidak digunakan.
Proses ini bergantung pada analisis statik atau pengetahuan asas kod yang menyeluruh, yang boleh terdedah kepada ralat tanpa alat yang mantap.
Without Proper Instructions | With Specific Instructions |
---|---|
ChatGPT | ChatGPT |
Claude | Claude |
Perplexity | Perplexity |
Copilot | Copilot |
Gemini | Gemini |
Imej oleh Peter H dari Pixabay
Artikel ini adalah sebahagian daripada Siri Pemfaktoran Semula.
Atas ialah kandungan terperinci Pemfaktoran Semula - Buang Kod Mati. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!