Декабрь для многих — это период размышлений или мыслей. Поэтому я решил подумать о прошлогодних вещах и мыслях — каждый день до Рождества. Это день 15.
В типичном (Java) проекте есть много мест, где нужно указать какой-то «путь».
Gradle
Для начала, в любой конфигурации сборки нужно описать несколько путей к каталогам или файлам.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
sonarqube { properties { property 'sonar.sources' , 'src' property 'sonar.exclusions' , '**/*.spec.js' property 'sonar.tests' , 'src' property 'sonar.test.inclusions' , '**/*.spec.js' } } task test(type: YarnTask, dependsOn: 'yarn' ) { description = 'Run the client tests' inputs.files(fileTree( 'config' )) inputs.files(fileTree( 'src' )) inputs.file( 'package.json' ) outputs.dir( 'build' ) args = [ 'run' , 'unit' ] } war { dependsOn asciidoctor from ( "${asciidoctor.outputDir}/html5" ) { into 'static/docs' } } |
UrlMappings Grails
Сопоставление URL-адресов с соответствующим контроллером и действия на стороне сервера.
1
2
3
4
5
|
"/" (controller: "dashboard" ) "500" (view: "/error" ) "/api/v1/person/$id" ( controller: "person" , action: "details" ) |
Spring Security
Защита URL с разрешениями.
1
2
3
4
5
|
http .authorizeRequests() .antMatchers( "/assets/**" ).permitAll() .antMatchers( "/admin" ).hasRole( "ADMIN" ) .anyRequest().authenticated() |
Vue маршрутизация
Отображения путей. Тот же проект, но для клиента JavaScript.
1
2
3
4
5
|
routes: [ { path: '/' , redirect: '/dashboard' }, { path: '/staff/person/:id?' , component: Person }, { path: '*' , redirect: '/notfound' } ] |
Spring REST Docs
Описание пути полей JSON для создания документации по запросам и ответам API.
1
2
3
4
5
6
7
8
9
|
given( this .spec) .accept( "application/json" ) .filter(document( "user" , responseFields( fieldWithPath( "name" ).description( "The user's name" ), fieldWithPath( "email.primary" ).description( "The primary email address" ), fieldWithPath( "roles[]" ).description( "List of roles" ), fieldWithPath( "subscription[].type.*.name" ).description( "Any subscription type" )))) .when().get( "/user/5" ) .then().assertThat().statusCode(is( 200 )); |
И более…
Это только в одном проекте!
Иногда я даже забываю, что такое правильный синтаксис & # 55357; & # 56898; В некоторых документах четко указано, что они используют шаблоны пути в стиле Ant ( **/*.?
) Или просто используют собственную систему ( [].*
).
Я думаю, что пришло время для стандартизированной «Спецификации пути» — где все пути могут быть описаны единообразно и рассматриваются одинаково! & # 55357; & # 56898;
Есть ли в вашем собственном проекте другие удивительные примеры? Я хотел бы услышать о них в разделе комментариев.
Опубликовано на Java Code Geeks с разрешения Теда Винке, партнера нашей программы JCG . Смотрите оригинальную статью здесь: X-Mas Musings # 15 — Too Many Paths. Один путь Спец?
Мнения, высказанные участниками Java Code Geeks, являются их собственными. |