1 改成双休 2 提高工资 3 撩 Java 开发转 Ruby
我这项目也正发愁呢,业务不难,就是不太写的动了。这一版上线了,后续开发也得找人接。
除非你平时说话不用“除非”
否则还是会用到 unless(除非) 的
Rails7 提供了可选前端方案,官方推出的 Hotwire 生态还是白板,轮子基本需要自己撸。所以目前还是 Rails6 时代的 Webpacker 是比较成熟好用。webpacker 和 rails 结合一般是 2 种方法:
1 使用 React/vue/Angular 接管前端路由。rails 只提供 API。
好处:几乎可以利用全部前端生态。
弊端:需要管理前后端 2 套路由,增加心智维护成本和开发量,很多简单的页面本来 render 一下的事,就需要分别写一个前端页面 +1 个 API。而且两套路由,在做权限管理的时候就会非常抓狂。
2 使用 Rails 的路由 + 部分 React/Vue 的页面渲染+Turbolinks/Turbo(可选)
好处:
弊端:
1) 如果使用 yarn add xxxx 其他的 js 库,是不是意味着 import xxxx 就可以找到 ?
是的
2) 如果自己编写的 yyyy.js 放在 app/javascript/packs, 应该写 import yyyy 嘛?
写相对路径
import xxx from './yyyy'
3) bootstrap 依赖 jquery,导入了 bootstrap 是不是不用在单独导入 jquery?
把 jquery 注册到全局就行了,你参考下这个 config/webpack/environment.js
,VUE+jquery 的
const { environment } = require('@rails/webpacker')
const { VueLoaderPlugin } = require('vue-loader')
const vue = require('./loaders/vue')
const webpack = require('webpack')
environment.plugins.append('Provide',
new webpack.ProvidePlugin({
$: 'jquery',
jQuery: 'jquery',
Popper: ['popper.js', 'default']
})
)
environment.plugins.prepend('VueLoaderPlugin', new VueLoaderPlugin())
environment.loaders.prepend('vue', vue)
module.exports = environment
4) 这个目录 app/javascript/channels 是做什么用的呢 ?
action_cable组件的默认 js
可以用 rails g channel 生成一个看看里面有什么,主要用于实时通讯,比如聊天室。服务端依赖 redis。
1) 如果使用 yarn add zzzz 其他的 css 库,是不是代表着 @import "path_zzzz" 必须对应到相应的 css 文件?
貌似是的
2) 这个目录 app/assets/stylesheets 默认情况下会创建针对控制器 Controller 的 css 文件,哪里制定它的呢 ?
其实并不需要定制,全部写到 javascript/stylesheets/application.scss 里就行了,因为 require 进来的文件似乎有加载顺序的问题。 如果你用的 vue 或者 react,那你的样式最好遵循前端框架约定。
官网指南看上去还没整明白,望大神指点迷津,有没有 6 版的中文手册之类的...
目前是没有的中文官网指南还是 Rails5 的,不过足够用了。
Rails 是个 MVC 框架,目前 V 还是用前端生态里的实践方案会比较好,Rails 提供的默认前端解决方案并不是很现代,过于强调复用,会导致 view 碎片化。而前端的 C 层解决方案又是堆 shi 山的副产物,而且并不能让后端省去 C 层开发,而导致前后端分裂。所以 Rails 官网指南重点学习 M 和 C 就行了。其他的完全不看都可以,像 mailer action_cable 这些并不是一个 Web Application 必须的。
M 层和 C 层 Rails5 到 Rails7 几乎没有什么变化。而且 Rails 精髓也就在 M 和 C。
OpenGL 是 3D 图形编程,后端语言主要是业务编程,还是有很大差别的。
我怎么感觉少了两个 0,看第十条要求很高啊。
手动的话起 4 个进程就好了。
一般用 passenger(nginx)管理进程,全自动的。
我感觉不行吧,主要是 gem 安装问题。
不知道具体需求是什么。类似 PYQT 的绑定?
不面向工资编程,所以劣币少,急功近利的人少,戾气少。
目测是 SEO 引流贴
666
其实可能只是你们的前端单纯的恶心 ActiveAdmin。
让他们自行选择用 AntDesign、ElementUI 或是 Vuetify 就解决问题了。 GraphQL 真的是没有必要。前后端都需要学习和适应,还要处理不熟悉的逻辑问题。 感觉比把前端培训会 Rails 的 model 和 restful 成本更高。
如果前端愿意 fullstack 的话自己随便整合一个 UI 框架,用 turbolinks 也是爽的不要不要的。
业务重构还是面向对象吧,元编程主要用来写工具代码。
你的代码可以运行啊。
你先执行下
yarn install
带 html 结尾通常是 2 个需求:
1 SEO 的伪静态需求。早期 web 页面通常都是一串几十位的参数结尾的 url,被视为不利于 seo。
而实际上长 url 对搜索引擎收录并没有太大影响,主要是
/1?a=aaa&b=bbb
/1.html?a=aaa&b=bbb
/1.html?b=bbb&a=aaa&ref=baidu.com
这 3 个 url 会被认为是 3 个不同页面。
另外 SEO 人员认为语义化的 url 有助于 seo 排名。所以国内 SEO 站经常出现,
/chanpin/jianjie.html
这种过度 seo 的 url
2 伪装后端 web 框架信息和开发语言信息,伪装成 html 静态页面,防止垃圾程序员写出的代码被注入、webshell 攻击。 而且这种程序很多都有生成 html 的方案,前端加个 squid,代理起来也更统一,更不容易出错,也对运维人员更友好。
所以看到比较有历史的论坛程序和 cms 程序都是 /forum-1.html 这种,主要也照顾用户的惯性感受。
而 rails 团队的激进更新风格,注入、webshell 漏洞基本不会发生,一旦发现都会很快被修复。用 restful 的 url 也根本不会有对 SEO 的不友好,所以一般看不到 rails 程序的 url 有 format。
如果想要生成 html 结尾的 url,看路由一章就行,可以生成这种风格的 url,程序也能正常解析。 https://ruby-china.github.io/rails-guides/routing.html
只不过并没有什么必要。
而用 rails 开发“产品”的程序员层次通常比较高,合作的奇葩 SEO 人员也较少,也很不容易被 SEO 忽悠,对审美通常也有要求。所以 rails 开发的程序.html 结尾的 url 并不常见。
哈,默认 1000 条,满足大部分伪自增需求。
尽量自己做下伪自增工作。
find_each 是 order by 主键的,加上排序会有问题。 送你一个带 order 的扩展
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
def self.find_eachs(limit: nil , batch: 1000 , order: :id , &block)
count = 0
last_offset = nil
next_break = batch
data = self.order(order).limit(batch)
until data.blank?
data.each do |dt|
count += 1
block.call(dt)
last_offset = dt.attributes[order.to_s]
break if count >= next_break
break if limit and count >= limit
end
break if limit and count >= limit
next_break += batch
data = self.where("#{order} > ?" , last_offset).order(order).limit(batch)
end
count
end
def self.find_each_datas(limit: nil , batch: 1000 , order: :id , &block)
count = 0
last_offset = nil
next_break = batch
data = self.order(order).limit(batch)
until data.blank?
block.call(data)
data.each do |dt|
count += 1
last_offset = dt.attributes[order.to_s]
break if count >= next_break
break if limit and count >= limit
end
break if limit and count >= limit
next_break += batch
data = self.where("#{order} > ?" , last_offset).order(order).limit(batch)
end
count
end
end
WSL1 目前执行 rake 还是比较慢,可能和权限之类的东西有关,没有深究,因为 WSL2 就要出来了。Inside 的 Win 10 已经可以使用 WSL2 了,不过生产机器没敢安装,我等正式版。
Ruby 比较适合的不是面向工资编程,而是面向收益编程。也就是说你用 Ruby 做了一件事,这件事有很大收益,包括但不限于 money,而大多数人为了工资,那肯定坚持不下去。
再者目前缺少大佬推广,为什么呢?现在阶段比较热的是深度学习,谁在这个阶段想把 Ruby 强推起来也难。谁叫 Matz 押宝的不是机器学习而是嵌入式呢?(毕竟日本是电子大国基因)。而对于业务系统而言,虽然我认为 Ruby 比 Java 更适合,但 Java 的以下特点稳固了他的霸主地位:
再看现阶段互联网、软件行业,主要处在业务系统填坑期,所谓“互联网+”也就是传统行业有大把的业务坑要填,这个阶段的最大诉求是“解决问题”,而 Java 的以上三个“工业语言”特性,来填坑最适合。Ruby 就不要在这里竞争了,Ruby 语言本身的“解决问题”的能力虽然也很强,但解决不了工源问题。而在大厂里面工会运动搞你也是分分钟的事。搞 Python 的还能说我做深度学习最好呀,Javascript 还能说有本事你写浏览器程序呀。Ruby....猝。
Ruby 的优势是 创造性生产 。但从 Ruby 语言本身来讲,恢复火爆取决与以下几个条件:
市场上“业务填坑”需求基本慢慢饱和,转而需要创造性生产的时候。比如之前的 web2.0 时代初期、移动互联网初期。当某阶段老的领域已经逐渐饱和,已经很难靠 Farm 挣到钱了,新领域的淘金运动开始,Ruby 和 Rails 的各种优势又能被无限放大。运气好的话出一个 Facebook 大厂,差一点能出个豆瓣这样的中厂。
内置/第三方 JIT 引擎性能开始爆炸,加上 Ruby 语言级别的良好特性,导至各种高性能领域期望使用 Ruby 作为首选胶水语言。
Ruby 押宝方向大爆发,比如之前押宝的嵌入式。(然而嵌入式这个方向难度还是很大的,毕竟比较硬,需要时间积累,高爆发领域还得是软一些的)
以上 3 个条件任意同时满足 2 个,加上大咖的宣传,即可恢复荣光。但即便如此 Ruby 仍不是工业级别 Farm 的语言。不建议 Rubyist 面向工资编程。
现在 Rubyist 应当考虑的是,找到自己愿意深耕 10 年以上的行业,这里说的行业不是互联网、软件,而是垂直行业,无论汽车、O2O、教育、服装、奢侈品、金融,或者更加细分的领域,深入其中,利用好 Ruby 的创造力,去创造工资以外的收益。当然就顺便就创造出了一些工作岗位。当然你也可以积累好 Ruby 的技术和团队,等下一个爆发的时候,可能你就是大厂的大佬。
支持的吧
可以使用 ActionCable + Fork 一个新进程解决耗时操作问题。
class ExambleController < ApplicationController
def create
Process.fork do
Foo.loop(1000000) do |bar|
ActionCable.server.broadcast(channel_id , {bar: bar})
sleep 0.1
end
end
end
end
今年主题很棒,好想去,可惜。。
能上 RubyChina 应该都不会傻到用其他语言去写后端,项目方指定语言的除外。
如果目的只是写博客文章的话,google cloud 一键部署 WordPress 就行。 不想搭建的话简书就可以,就是有些敏感内容会被河蟹。
管道可以避免无节操的继承关系,防止 object 无限变大,是非常好的特性。口水 Elixir 这个特性好久了。
活太多 1 个人干不完,用 10 个全栈还是 5 个前端 5 个后端。成本和团队成型速度是不同的,管理难度根据项目特点不同差别也是很大的。
由于市场需求、成本计算和管理人员水平不达标,通常高端人才价格低于实际应得酬劳,而专业型工种,技能及格的“人才”价格普遍虚高,蜜汁自信。楼主说的应该是后一种。
host 不用设置,完全自动的,跟本机一样。
编译的话是需要,不过我没编译成功,试用的网友编译好的版本。
en,Win10 开启缩放就好了,字体倍儿棒,之前没法用是因为 n 多软件 HDPI 的设计没跟上,缩放后全是毛边,现在基本都搞定了。
rake rails 慢有说是 Windows Defender 的问题,不过我这是关闭的(非法途径关闭),可以等等 WSL2 正式版试试,目前 insider 了 https://www.oschina.net/news/107424/wsl-2-is-now-available-in-windows-insiders