V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  nine  ›  全部回复第 4 页 / 共 34 页
回复总数  678
1  2  3  4  5  6  7  8  9  10 ... 34  
2022-07-17 19:01:55 +08:00
回复了 yodhcn 创建的主题 程序员 不限编程语言,你认为哪个 ORM 最好用?
@yodhcn

静态类型检测可以给你安全感,也只是安全感而已。但是无论是静态,还是动态,该考虑的事情一个也跑不了。考虑不到,最后还是要手工处理。

而静态会让人更死板,更繁琐。动态就简单,比如我查一个 status_id

@regulates = @regulates.where(status_id: params[:status_id])

api 可以传过来一个 int 就是
@regulates.where(status_id: 1)
也可以直接传一个数组,就是
@regulates.where(status_id: [1,2,3])

这都是一些基础用法。

如果想连表查询就
```ruby
@regulates = @regulates.joins(:business).where("businesses.name like '%#{@business_name}%'")
```

想连一堆的表,输出 json 就直接
```ruby
@regulates = @regulates.as_json({
include: {
market: {only: nil , methods: :area_name } ,
business_owner: {except: :password} ,
submit_serv_user: {only: :username} ,
serv_depart: {methods: :parent_tree_names} ,
} ,
methods: [:status , :regulate_show_status , :alarm_status ,:regulate_times]
})
render json: @regulates
```
inlcude 是关联模型,直接连表查数据。
only 是只查某些字段。
except 是除了某些字段,其他都查出来。
method 是直接调模型的方法,可以用来组合复杂的数据,而不是只查表里的内容。
而且可以 include 的模型再 include ,无限套娃(当然需要动动脑子,考虑一下性能问题)
是不是比其他 ORM 强出几(十)条街?


你真正用了 Rails 就会发现,哪哪都能找出甩其他语言框架几条街特性。
比如你要 post 一个时间到数据库,你可以'2012/12/12' 也可以'2012 12-12' 也可以 '2012/12/12 18:00:00',随便什么样的格式都可以。这种细节数不胜数。
你和别人的表结构同步,就需要麻烦一点写 migration ,但是这相当于把数据库表结构严格做了版本控制了。
而部署上,我目前都不用 docker ,因为 Rails 应用本身就是一键部署的。
1 git 提交代码
2 运行 cap production deploy
3 等待部署结束


Ruby 在中国不火,主要原因是 3 点
1 互联网创业大潮时期,在中国 PHP 太火,挤掉市场份额。
2 然后是平台限定,当时 Windows 下 Ruby 基本没法写,基本都是 Mac ,团队硬件成本投入太高,所以也才有各种仿制品。
3 Ruby 开发效率太高,当你产出是别人几倍拿的还是同样工资,而维护的业务逻辑大量,要把人累死。投资人不懂,只会觉得是理所应当。


所以除了真正打算自己赚钱的创业项目,或者写给自己用的项目,基本很少有用 Ruby 的。


我最早写的是 PHP ,2010 年自己写了一个 PHP 框架,抄袭对象的是某个抄 Rails 的 PHP 框架 QeePHP ,抄他是因为他不维护了。同一时期有大火的 Django 、YII ,Django 压根没考虑数据库表结构版本维护,YII 是比较割裂的,migration 做的很初级。我自己的框架想到了 migration 的思路,但是实在不想去做这些底层的东西,因为我的目标是开发赚钱的应用。后来的 Laravel 基本就是 Rails 的强势 copy ,但是用肯定要用更成熟的原版。

因为 Ruby 是动态语言,所以写 Rails 你应该写一些测试,来保证程序的健康。但是静态语言也应该写测试啊。

你又担心,多人协同开发,写的代码相互看不懂。但有没有想过,Ruby 和 Rails 的效率可能让你根本不需要那么多人?我现在手里项目 56 张表,10 万多行代码,前后端一个人。

而且 Ruby 虽然可以 magic ,但并没有规定你不能用朴素的方式来书写代码。
相反你可以规定,不让自己 /员工用花里胡哨的方法写代码。因为写的 99%代码都是业务,想花哨也花哨不起来,该是 if else 他就得是 if else 。

而事实上我们正常只有 hack 第三方包,和写一些工具类的时候才会用元编程。其他代码都是一板一眼的。

所以,你会发现,为什么 Rails 国内这么小众,但是一提牛逼的框架尤其是 ORM ,都要说 Rails 。因为他就是强啊。
自己研究代码,强烈建议玩玩 Rails 。自己写项目,强烈推荐使用 Rails 。

PS:只用来做后端哦,orm 和 API 。Rails 默认前端那套东西很不成熟。老版本配套的 webpacker ( webpack+周边)倒是可以,我自己用 webpacker 和 vue 整合了一套实践还是很不错的,但是还没有时间能分享出来。

完了,变成安利贴了。逃
2022-07-15 15:08:37 +08:00
回复了 yodhcn 创建的主题 程序员 不限编程语言,你认为哪个 ORM 最好用?
ORM 肯定是 Rails 了,其他语言根本抄不来的,原因就是 Ruby 的语言特性。
Rails 后端开发体验,对任何语言框架都是秒杀。(不含 js )

Rails 仿体最好的是 Elixir 的 Phoniex ,性能出众,然而语言太小众了,生产场合基本不会选择他。
2022-07-12 19:30:30 +08:00
回复了 lovepplforever 创建的主题 区块链 成都的打着区块链旗号的公司是不是都是搞交易所的?
@lovepplforever
那是肯定的,搞区块链大部分都是发币,而不是交易所啊。
2022-07-12 17:57:31 +08:00
回复了 lovepplforever 创建的主题 区块链 成都的打着区块链旗号的公司是不是都是搞交易所的?
不一定啊,能做交易所的不多,大部分都是发币吧
op 太年轻了吧,吐槽都没吐到点上。
不设置人工验证上限,传销组织拉群能把腾讯服务器拉瘫痪。
QQ 号建群个数有限制的(以前有限制,现在不清楚)

现在电诈管的很严,你去营业厅多开几个手机号试试。
2022-06-29 14:44:55 +08:00
回复了 RayJiang9 创建的主题 iPhone iPhone 13 Pro 续航拉垮
看下是不是你 WiFi 信号不好。不断搜索 WiFi 信号耗电增加。

正常我 iPhone 13 电量<20% 抖音直播挂 2 小时没问题。
2022-06-23 16:12:40 +08:00
回复了 storyxc 创建的主题 GitHub Copilot 我承认我上午说话大声了些。。。。
一直很好奇,这玩意有什么用么?
2022-06-21 17:02:10 +08:00
回复了 tangknox1 创建的主题 PHP 谁有空闲时间,付费找人写个小偷程序
一万块钱我接了
2022-06-20 19:09:09 +08:00
回复了 bilibiliLM 创建的主题 互联网 怎么才能文档分享给他人查看?建站觉得维护成本略高
腾讯文档就行了呗
2022-06-17 18:42:41 +08:00
回复了 nutting 创建的主题 PlayStation 4 现在想买个二手 ps4 pro
免费没什么好游戏。
底特律、战神、神海
2022-06-01 17:12:38 +08:00
回复了 xxjwxc 创建的主题 Go 编程语言 golang 实现的一套 A 股量化系统
没看懂,你这是系统啊还是产品
2022-05-30 16:31:19 +08:00
回复了 monkeyWie 创建的主题 程序员 如何规避正式环境上的测试数据问题
(目前我们的方案就是测试完了手动把测试账号相关的数据进行删除,很明显这不是个好的办法,所以来问问各位 v2er 们有你们项目是怎么处理类似问题的?)

很明显这是一个好办法
2022-05-30 16:07:11 +08:00
回复了 liqinliqin 创建的主题 程序员 抖音经验分享
难得见 V 站有讨论抖音的。
变现数据怎么样?
2022-05-26 17:23:56 +08:00
回复了 minuo0day 创建的主题 PHP 关于 PHP 高并发,请教各位
PHP1 小时 40 万,真的不算多。8 年前用 4 核云服务器+2 核 DB (那时候叫 VPS )运维过别人的 PHP 代码,做过一天 600 万的访问,CPU 占用 25%。在我插手他架构,并魔改他代码之前,也是经常宕机,和你的情况差不多。

这种情况,一般就是卡在 mysql 上了。mysql 多核利用效果不好,所以才会有一堆读写分离、分库分表、KV 缓存、异步队列,这些看起来很骚的运维方案。

mysql 单核查询卡死,会导致其他查询堆积。你检查一下,如果 DB 服务器只有一个核是 100%,其他都是空闲,那基本就是这情况。
前端的 application server 会一直堆积请求,并发时会导致 application 服务器 CPU 高居不下,但这其实不太重要。因为 web 界面卡死主要还是 DB 数据读不出来。

----------------------------------------------------------------------------------------

你的具体问题主要就集中在“前端凭借身份证号直接生成个人二维码”这里。这里就是大量的 find_by(身份证: 字符串),这种查询的读。如果不存在的话,还要插一条数据。

解决这里的代码逻辑结构,和读写结构。代码这里应该做一些设计。然后是数据库,(如果可以的话,DB 建议直接换成 PostgreSQL ,不过我感觉你们应该没有 PG 的运维经验)所以,先把 mysql 做读写分离吧。

二维码查询查一个库,生成写另一个库,前端页面和后台管理查另另一个库。

其他的可以再检查一下带宽和磁盘 IO ,密切监控。磁盘垃圾的话,基本也要卡死。

那些动不动喷 Laravel 和推 Go 、Swoole 的非蠢即坏,另外这种业务也不太适合上缓存和队列。LZ 好好检查下我说的这些点。解决了记得给我发红包。
2022-05-25 15:45:34 +08:00
回复了 fanxasy 创建的主题 Java fastjson 真就突出一个阴魂不散
@Joker123456789
存在即合理,我是发现者,不是定义者。
2022-05-25 13:53:04 +08:00
回复了 fanxasy 创建的主题 Java fastjson 真就突出一个阴魂不散
Java 这么繁荣是有道理的,连个 JSON 解析库都做不好,大把的输出时间换工资啊。
2022-05-24 13:02:32 +08:00
回复了 RRyo 创建的主题 程序员 你们下班之后还会用工作使用的语言写代码吗
下班不打游戏么?
1  2  3  4  5  6  7  8  9  10 ... 34  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2065 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 40ms · UTC 15:57 · PVG 23:57 · LAX 08:57 · JFK 11:57
Developed with CodeLauncher
♥ Do have faith in what you're doing.