V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  buffzty  ›  全部回复第 21 页 / 共 22 页
回复总数  432
1 ... 13  14  15  16  17  18  19  20  21  22  
2020-04-17 17:00:39 +08:00
回复了 buffzty 创建的主题 程序员 如何安全得表达对恶心企业的不满?
我一直用的都是 svip,我下载量不大,一直都是满速这点我没有黑他。我并不是穷舍不得这点钱,我讨厌的是不冲 svip 就个位数的速度。就是单纯的讨厌它,想恶心他
2020-04-17 16:14:56 +08:00
回复了 zycojamie 创建的主题 程序员 后端要求前端传的查询参数
谁能告诉我这破站到底怎么发代码?
2020-04-17 16:13:50 +08:00
回复了 zycojamie 创建的主题 程序员 后端要求前端传的查询参数
我就是这样做的.已经用了一年多了.如果项目很小,开发速度第一可以试试.缺点就是只能普通查询,如果查询有 join 的需要手动写规则
下面这个是我查询列表的一个通用方法.新加一个模型只需要设置一下 model 类型 和 filter 映射和 order 映射
用这套接口速度起飞,但有局限性
```php
// Base controller
public function lists(): Json
{
$json = new JsonRes();
[$page, $limit, $filter, $order, $extra] = $this->getListParam();
$scene = $extra['scene'] ?? $this->model::SCENE['default'];
$where = $this->model::buildWhereMap($filter);
$fmtOrder = $this->model::buildFmtOrder($order);
if ( $scene === $this->model::SCENE['admin'] && !$this->isAdminUser() ) {
return $this->noAuth();
}
[$list, $count] = $this->model::getListNotThrowEmptyEx($page, $limit,
$this->model::NEED_COUNT, $where, [], $order);
$fmtList = [];
/** @var \app\model\Base $model */
foreach ($list as $model) {
$fmtList[] = $model->getFmtDetail($scene);
}
$json->setData([
'list' => $fmtList,
]);
$json->setPage($page);
$json->setLimit($limit);
$json->setCount($count);
return json($json);
}

// Base Model
/**
* 根据 filter 构建查询条件.
*
* @param array|null $filterList
* @param array $filterFieldMapDbField
* @return array
*/
public static function buildWhereMap($filterList, array $filterFieldMapDbField =
[]): array
{

$filterFieldMapDbField = empty($filterFieldMapDbField) ? static::FILTER_FIELD_MAP_DB_FIELD : $filterFieldMapDbField;
$map = [];
if ( !is_array($filterList) ) {
return [];
}
foreach ($filterList as $filterField => $item) {
if ( $item instanceof Closure ) {
$map[] = $item;
continue;
}
if ( !is_array($item) || !array_key_exists('condition', $item)
|| !array_key_exists('val', $item) ) {
continue;
}
if ( $item['val'] === '' || $item['condition'] === Condition::TYPE['undefined'] ||
!in_array($item['condition'], Condition::TYPE, true)
) {
continue;
}
if ( !array_key_exists($filterField, $filterFieldMapDbField) ) {
continue;
}
$dbField = $filterFieldMapDbField[$filterField];
$condition = Condition::DB_CONDITION[$item['condition']];
$map[] = [
$dbField, $condition, Condition::formatVal($item['condition'], $item['val']),
];
}

return $map;
}
```
前端代码:
```typescript
// 一个模型只需要定义下面这些 就可以使用通用增删改查 5 个接口了
type Model = Expert
const route = '/expert'
type FilterKeys =
| 'id'
| 'ctime'
| 'expertCode'
| 'name'
| 'userName'
| 'departmentId'
| 'orgCode'
| 'orgName'
| 'provCode'
| 'cityCode'
| 'countyCode'
| 'provName'
| 'cityName'
| 'countyName'
| 'level'
| 'intro'
| 'type'
| 'mobile'
| 'phone'
| 'email'
| 'qq'
| 'wx'
| 'remark'
| 'serviceType'
type OrderKeys = 'id' | 'ctime'
type Scene = 'admin' | 'default'
interface QueryExtra extends BaseExtra<Scene> {}
type ActGetListParam = GetListParam<FilterKeys, OrderKeys, QueryExtra>
type AddData = Omit<Model, 'adeptLabelList' | 'department' | 'id'>
type EditData = AddData & Pick<Model, 'id'>

export async function lists<T = Model>(data: ActGetListParam) {
return bpost<{ list: T[] }>({
url: route + '/list',
data,
})
}
```
2020-04-15 22:26:44 +08:00
回复了 SaintSeiya 创建的主题 Java 大佬指点如何上手 spring boot
学习不是应该上 gayhub 吗? 上面案例把你要做的全部写了一遍.你直接复制就能用. 不看 gay 站看 b 站属实清流
2020-04-14 16:17:47 +08:00
回复了 skyworker 创建的主题 Go 编程语言 laravel 转 golang 最佳实践是?
为什么要转 go 啊, 哪个程序员不会几个语言啊 一起写不就行了吗
2020-04-14 14:28:21 +08:00
回复了 skyworker 创建的主题 Go 编程语言 laravel 转 golang 最佳实践是?
@skyworker 不至于.我觉得 go 多了百分之二十代码左右 这百分之 20 都是为了 orm 获取列表 写接口写的.等泛型有了 我觉得基本没什么差距了,或者 go 的代码更少些
2020-04-14 13:46:41 +08:00
回复了 skyworker 创建的主题 Go 编程语言 laravel 转 golang 最佳实践是?
我也是尝试用 go 写 api. 总体来说,没有泛型很难受. 其他的还好.
安全性变高,灵活度变低,复杂度变高
1:
```go
d := &AddUserData{}
if err := c.ShouldBindJSON(d); err != nil {
app.ValidError(err)
return
}
user := &models.User{
Account: d.Account,
Gender: d.Gender,
Name: d.Name,
Age: d.Age,
Level: d.Level,
}
if err := models.Add(user); err != nil {
app.ErrorMsg(err.Error())
return
}
app.Success()
```
2:
json 注解中加入 sql:"TYPE:json"
类型是先 Value 和 Scan 接口
3:
db.Model(&user).Updates(map[string]interface{}{"name": "hello", "age": 18,})

db.Model(&user).Updates(User{Name: "hello", Age: 18})
2020-04-13 13:29:41 +08:00
回复了 Bramblex2 创建的主题 程序员 后端接口这样设计是否合理
方案 1: interface Resp{
A:{a: string, b:string, c: string},
B?:{a: string, b: string, c: string}
}
方案 2: interface Resp{
A:{a: string, b:string, c: string},
B:{a: string, b: string, c: string}|null
}
2020-04-11 02:37:50 +08:00
回复了 FaiChou 创建的主题 程序员 .env 应不应该放到 git 中?
2 个 env 文件
.env 通用配置 上传到 git
.env.local 本地隐私配置 不上传到 git
jenkins 里 服务器隐私配置
2020-04-10 00:40:57 +08:00
回复了 smallpython 创建的主题 程序员 编写代码需不需要使用 Linux 环境?
我用 win10 , 只开发 linux 程序或者跨平台程序.
c/c++ 使用 clion 远程编译,运行
java idea 跨平台
go goland 跨平台
php idea 自动 ftp 上传到 linux
前端 vsc + chrome
命令行使用 git bash
桌面开个 xshell
感觉很舒服.
win10 i7 16g 一点不卡
有 ubuntu,mac 吃灰中
2020-04-09 14:03:40 +08:00
回复了 my2492 创建的主题 宽带症候群 华为 ax3 这个价格香吗?还是智商税?
我也买了一个华为千兆路由器,比其他牌子的千兆路由器真的好太多.
不是华为吹,是用过才说好
我哥是修变频器的,有天我去他家 问他华为的变频器好不好,他说不好. 因为不容易坏 我赚不到钱
不过华为已经把变频器业务卖掉了. 举个例子 乐呵一下
我们前端用 react 了,随他怎么 xss,框架自动转义了. 没用框架之前 php 返回之前先转义
2020-04-06 01:44:55 +08:00
回复了 noble4cc 创建的主题 Go 编程语言 golang 开发者大部分是从 PHP 和 Python 转过来的吗?
@gowk 你怎么知道什么时候出泛型的呢
2020-04-04 11:57:44 +08:00
回复了 hyzzsu 创建的主题 问与答 技术重要还是想法重要?
2 个都很重要,但是有想法的人远远少于有技术的人. 所以 想法比技术重要.
2020-04-02 22:31:57 +08:00
回复了 jzmws 创建的主题 硬件 2020 年后端开发 32GB 内存迫在眉睫
我的垃圾 win10 组装电脑 16g 内存 正常情况下 开 goland*2, idea, netbeans,vscode 1-2,chrome,postman 一般不到 60%
从没觉得卡过, 有时候项目多开三四个桌面,ide 开五六个 我都够用. 我真不明白你们这些上 32g 的真的有必要吗?
内存大头就是 chrome vscode idea 就算每个占 2g 也才 6g 而已
2020-03-31 16:49:12 +08:00
回复了 sadfQED2 创建的主题 分享发现 卧槽,以后地铁真的不能抖音外放了
@bolide2005 上海也一样,每天那个右转的公交车跟抢着投胎一样,不管有没有人,他右转都不减速. 这条路我走了 2 年了,基本每个公交司机都这样
2020-03-30 15:10:57 +08:00
回复了 aoling 创建的主题 云计算 腾讯云套路云坑死人不偿命
@whypool 我阿里云搭建的 jenkins 一天访问 github 几百上千次.几年了都没被提醒过. 访问 github 还违规了?
2020-03-27 15:05:11 +08:00
回复了 bilibiliCXK 创建的主题 程序员 github SSL 劫持是如何实现的?具体原理是什么
昨天 gorm.io 这个域名也被劫持了
2020-03-06 22:53:26 +08:00
回复了 hero158 创建的主题 问与答 你觉得“运气”是生活中很重要的一部分吗?
@guoluwei 我把命和运记错了,你是对的 命在前面
1 ... 13  14  15  16  17  18  19  20  21  22  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2270 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 12:39 · PVG 20:39 · LAX 05:39 · JFK 08:39
Developed with CodeLauncher
♥ Do have faith in what you're doing.