Рубрики
Без рубрики

Ошибки скрываются в вашем urls.py

urls.py может стать громоздким по мере роста кодовой базы. Существуют стратегии для улучшения обслуживания, … Помечено с Django, WebDev, Codequality, Python.

urls.py может стать громоздким по мере роста кодовой базы. Существуют стратегии для улучшения обслуживания, но иногда это спорный момент, как при присоединении к новой команде или унаследованию кодовой базы Brownfield, поэтому важно знать, как лекарство, а также предотвратить. Вы можете увидеть проблему с этим urls.py Из зрелой кодовой базы?

from django.urls import path, include

import views


router = DefaultRouter()
router.register("application", views.AppView, basename="app")
router.register("licence", views.LicenceView, basename="licence")
router.register("good", views.GoodView, basename="good")
router.register("file-version", views.FileView, basename="file")


urlpatterns = router.urls

urlpatterns += [
    path("healthcheck/", include("health_check.urls")),
    path("callback/", views.CallbackView.as_view(), name="login"),
    path("applications/", include("api.applications.urls")),
    path("audit-trail/", include("api.audit_trail.urls")),
    path("cases/", include("api.cases.urls")),
    path("compliance/", include("api.compliance.urls")),
    path("goods/", include("api.goods.urls")),
    path("goods-types/", include("api.goodstype.urls")),
    path("picklist/", include("api.picklists.urls")),
    path("documents/", include("api.documents.urls")),
    path("queries/", include("api.queries.urls")),
    path("routing-rules/", include("api.workflow.urls")),
    path("licences/", include("api.licences.urls")),
    path("signup/", views.Signup.as_view(), name="login")),
    path("licences/", include("api.licences.urls")),
    path("data-workspace/", include("api.data_workspace.urls")),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

if settings.FEATURE_API_ENABLED:
    urlpatterns.append(path("search/", include("api.search.urls")))

if settings.FEATURE_ADMIN_ENABLED:
    urlpatterns.append(path("admin/", admin.site.urls))

    if settings.FEATURE_STAFF_SSO_ENABLED:
        urlpatterns = [
            path("admin/login/", api.core.views.LoginView.as_view()),
            path("auth/", include("authbroker_client.urls")),
        ] + urlpatterns

Вы видели это правильно? Я сделал, потому что Я обзор кода бот И я хорош в подобных вещах. Вот подсказка: какой URL будет Обратный ("Вход") или { % url "login" %} возвращаться? Проверить снова. Это верно – /обратный вызов/ и /авторизоваться/ Иметь то же имя!

path('callback/', views.CallbackView.as_view(), name='login'),
...
path('signup/', views.Signup.as_view(), name='login'),

Как это случилось? Ну, это легко пропустить при чтении кода. Конечно, можно пропустить во время обзора кода, так как люди ошибочны. W Edwards Deming указал, что Сделайте больше ручного QA Не обязательно приведет к улучшению качества: когда в QA участвует несколько человек, каждый может полагаться на другого, чтобы обнаружить дефект, поэтому, поскольку заводский менеджер добавляет больше людей вручную, ищущие дефекты, тем больше дефектов будет пропущено, потому что Фрэнк предполагал Тим поймал бы это, и Тим полагался на Билла, и Билл знает, что Фрэнсис был хорош, и Фрэнсис знал, что Ким никогда не бросает мяч и т. Д. Это их вина упустить ошибки? Нет, руководство должно было предоставить правильные инструменты и процессы для учета этого явления: Делайте лучше QA а не Сделайте больше ручного QA Анкет

Какое влияние? Этот код попадает в Мастер Филиал будет означать, что половина времени шаблонов будет ссылаться на неправильное место: если шаблон пытается ссылаться на представление в систему через { % url "login" %} Можете ли вы быть уверенным, что это пойдет в нужное место? Нет.

Ваша кодовая база скрывает UNRL-адреса, не являющиеся UNIQUE?

Со временем для технического долга легко проникнуть в вашу кодовую базу. Я могу проверить это для вас в django.doctor , или может Просмотрите свой GitHub PRS :

Или попробуйте Django Refactor Challenges Анкет

Оригинал: “https://dev.to/djangodoctor/bugs-lurking-in-your-urls-py-3668”